将数字拆分为总和部分

将数字拆分为总和部分

有没有办法,我可以提供一个数字,然后 Excel 会从有限的子集中计算出组成该数字的组成部分(不超过提供的数字)

例如子集:(1.25、2.5、5、10、20)

给定一个数字(25),excel 会写出 20+5 (或 20,5)

17 --> 10+5+1.25(不超过 17 的最接近组合)

35-->20+10+5=35

36-->20+10+5=35

37-->20+10+5+1.25=36.25

38-->20+10+5+2.5=37.5

39-->20+10+5+2.5+1.25=38.75

等等

答案1

这很有趣!

在工作簿中的某个位置(我建议使用不同的选项卡),创建一个组件表包括零像这样: 组件表 只需从“组件”一词开始,然后在下面添加数字,然后从功能区中选择“插入表格”。确保包含零,并将表格名称更改为突出显示。此组件表需要按升序排列,但创建表格意味着您将获得那个方便的小排序/过滤按钮。:-)

然后,在工作簿的其他位置创建主表。 主表包含一个输入数字列、10 个组件列和一个组件总和列 仅添加第一列和所有列标题,然后再次选择“插入表格”。我编辑了普通样式的数字格式,以便General;General;零值显示为空。

列:

号码 - 你的号码

C1-=VLOOKUP([@Number],Components,1)

C2 至 C10 -=VLOOKUP([@Number]-SUM(OFFSET([@C1],0,0,1,COLUMN()-COLUMN([@C1]))),Components,1)

CSum -=SUM([@[C1]:[C10]])

在表格中,[@ColumnName]指的是当前行中的“ColumnName”单元格。因此,在我的版本中,公式的计算COLUMN([@C1])结果为 3,因为它位于 C 列中。

因此,对于上图中突出显示的单元格,公式为

=VLOOKUP([@Number]-SUM(OFFSET([@C1],0,0,1,COLUMN()-COLUMN([@C1]))),Components,1)

决定

=VLOOKUP(**35**-SUM(OFFSET(C4,0,0,1,**6** - **3**)),Components,1)

决定

=VLOOKUP(35-SUM(**C4:E4**),Components,1)

决定

=VLOOKUP(35-**35**,Components,1)

因此,VLOOKUP 在 Components 中查找等于第一个参数 (0) 的最大数字,并返回结果 0。这将按照自定义格式显示,Custom;Custom;以便零显示为空白。

(好吧,真是的。当然,“**” 并不是公式解析的字面部分,而是我将更改的部分加粗的失败尝试。如果有人知道如何获得我想要的效果,请修复它。)

相关内容