如何将数字分成不同的部分
我一直在试图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 Columns
function将列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,从而确保四舍五入。