如何将数字拆分为不同的部分

时间:2017-10-23 07:52:14

标签: excel

我一直试图通过使用公式找到一种在excel中拆分数字的方法。

目的是使用下面的列表

Pens:
Black:30
Blue:20
Red:47
Green:17
Total:114

要拆分成不同的方框,方框的数量由一个方框中可容纳的笔数决定,在这种情况下,最大值为22。

方框计算的公式:

`=114 / 22 = 5.18`

将其四舍五入为需要的6个框

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

注意:如果盒子可以很好地分成6个盒子,那么这些盒子不必填充到最大值。

The expected output: when splitting nicely
Pen:
Black : 19 11 0 0 0 0
Blue:   0 8 12 0 0 0 
Red:    0 0 7 19 19 2
Green:  0 0 0 0 0 17
Total:  19 19 19 19 19 19

2 个答案:

答案 0 :(得分:1)

Excel完全与数字有关,因此最好只在单元格中存储数字。像这样,您可以更轻松地添加,减少,乘法和除法。因此,您的列表似乎是这样的:

enter image description here

应该是这样的:

enter image description here

要完成此操作,您可以使用A标签中的Text to Columns功能将列Data拆分为两列,然后拆分为:

或者,您也可以按原样保留所有内容,并仅在每个单元格中存储数值。然后,您可以更改每个单元格的数字格式,以显示您想要的文本:

enter image description here

注意,只有数字17存储在单元格中(从公式栏中可以看到)。然而,此单元格的数字格式确保它显示为Green:17

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

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

注意公式周围的弧形括号,表示数组公式。您必须输入公式而不使用弯曲括号并按Ctrl + Alt + Return。 Excel将自动放置弯曲括号,从而确认这是一个数组公式:

enter image description here

答案 1 :(得分:1)

如果这是您的输入:

enter image description here

然后以下将打印" 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

&#34;魔法&#34;来自RoundUp函数,如果它不是整数,则将值加0.5,从而确保向上舍入。