如何将数字分成不同的部分

我一直在试图find一种方法来分割Excel中的数字,只是通过使用公式。

目的是使用下面的列表

笔:
黑色:30
蓝:20
红色:47
绿色:17
总计:114

要分成不同的盒子,盒子的数量是由多less笔可以放在盒子里决定的,在这种情况下,最大值是22。

方框计算公式:

 `= 114/22 = 5.18`

这被四舍五入成六个盒子需要

是否有任何可以将数字拆分成框的公式,颜色只能混合一种颜色。

注意:箱子不一定要装满,如果可以很好地分成6箱,会更好。

预期的产出:当分裂很好
钢笔:
黑色:19 11 0 0 0 0
蓝色:0 8 12 0 0 0 
红色:0 0 7 19 19 2
绿色:0 0 0 0 0 17
总计:19 19 19 19 19 19

Excel是关于数字的,所以总是最好只把数字存储在单元格中。 像这样,您可以更轻松地添加,减less,乘数和除数。 因此,你的名单似乎目前是这样的:

在这里输入图像说明

应该是这样的:

在这里输入图像说明

为了达到这个目的,你可以使用Text to Columns选项卡中的Text to Columnsfunction将列A分成两列,然后分割:

或者,您也可以保持所有状态,并仅将数值存储在每个单元格中。 然后,您可以更改每个单元格的数字格式,以显示您想要的文本:

在这里输入图像说明

请注意,只有数字17存储在单元格中(如从公式栏中可见)。 然而,这个单元格的数字格式确保它显示为Green:17

如果你不关心上面的任何内容,只想快速解决存储在列a中的所有文本,那么你可以使用下面的数组公式:

 {=ROUNDUP(SUM(VALUE(MID(A2:A5,FIND(":",A2:A5)+1,LEN(A2:A5))))/22,0)} 

注意表示数组公式的曲线括号。 您将不得不input没有弯曲括号的公式,并按下Ctrl + Alt + Return 。 Excel将自动放置弯曲的括号,从而确认这是一个数组公式:

在这里输入图像说明

如果这是你的input:

在这里输入图像说明

然后在控制台中打印“6”

 Option Explicit Public Sub TestMe() Dim rngA As Range Dim units As Long units = 22 Set rngA = Range("A1") Debug.Print RoundUp(Split(rngA, ":")(1) / units) End Sub Public Function RoundUp(val As Double) As Double If (val - Int(val)) <> 0 Then RoundUp = Round(val + 0.5) Else RoundUp = val End If End Function 

“魔术”来自RoundUp函数,如果它不是整数,则将值加0.5,从而确保四舍五入。