有没有办法,我可以提供一个数字,然后 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
这很有趣!
在工作簿中的某个位置(我建议使用不同的选项卡),创建一个组件表包括零像这样: 只需从“组件”一词开始,然后在下面添加数字,然后从功能区中选择“插入表格”。确保包含零,并将表格名称更改为突出显示。此组件表需要按升序排列,但创建表格意味着您将获得那个方便的小排序/过滤按钮。:-)
然后,在工作簿的其他位置创建主表。
仅添加第一列和所有列标题,然后再次选择“插入表格”。我编辑了普通样式的数字格式,以便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;
以便零显示为空白。
(好吧,真是的。当然,“**” 并不是公式解析的字面部分,而是我将更改的部分加粗的失败尝试。如果有人知道如何获得我想要的效果,请修复它。)