我想知道总和N需要多少个单元格。请参阅以下示例:
number | cells to sum of 100
100 | 1
50 | 2
20 | 3
25 | 4
15 | 4
90 | 2
10 | 2
参见最后一列,它找到当前单元格+前一单元格的最小数量,总和为100。
有办法吗?
感谢。
答案 0 :(得分:2)
在B2
,数组公式** :
=IFERROR(1+ROWS(A$2:A2)-MATCH(100,MMULT(TRANSPOSE(A$2:A2),0+(ROW(A$2:A2)>=TRANSPOSE(ROW(A$2:A2)))),-1),"Not Possible")
根据需要复制。
根据需要更改硬编码阈值(此处为100)。
作为对部分的解释:
MMULT(TRANSPOSE(A$2:A2),0+(ROW(A$2:A2)>=TRANSPOSE(ROW(A$2:A2))))
使用提供的数据并从B5
获取上述版本,即:
MMULT(TRANSPOSE(A$2:A5),0+(ROW(A$2:A5)>=TRANSPOSE(ROW(A$2:A5))))
第一部分,即:
TRANSPOSE(A$2:A5)
返回:
{100,50,20,25}
及其第二部分,即:
0+(ROW(A$2:A5)>=TRANSPOSE(ROW(A$2:A5)))
解析为:
0+({2;3;4;5}>=TRANSPOSE({2;3;4;5}))
即:
0+({2;3;4;5}>={2,3,4,5})
是:
0+{TRUE,FALSE,FALSE,FALSE;TRUE,TRUE,FALSE,FALSE;TRUE,TRUE,TRUE,FALSE;TRUE,TRUE,TRUE,TRUE})
是:
{1,0,0,0;1,1,0,0;1,1,1,0;1,1,1,1}
对矩阵乘法的理解将告诉我们:
MMULT(TRANSPOSE(A$2:A5),0+(ROW(A$2:A5)>=TRANSPOSE(ROW(A$2:A5))))
在这里:
MMULT({100,50,20,25},{1,0,0,0;1,1,0,0;1,1,1,0;1,1,1,1})
是:
{195,95,45,25}
即。一个数组,其四个元素分别相当于:
=SUM(A2:A5)
=SUM(A3:A5)
=SUM(A4:A5)
=SUM(A5:A5)
此致
**数组公式的输入方式与“标准”公式的输入方式不同。您只需按住CTRL和SHIFT键,然后按ENTER键,而不是按ENTER键。如果你已经正确地完成了它,你会注意到Excel在公式周围放置了大括号{}(虽然不要尝试自己手动插入这些)。
答案 1 :(得分:0)
我用excel公式做了前3个: D3→100 C4是您的号码开始的地方,因此C4 = 100,C5 = 50等。 公式在D4,D5,D6等上
在D4上:
= IF(C4&GT = D3; 1;"假&#34)
在D5上:
= IF(C5&GT = D3; 1; IF(C5 + C4&GT = D3; 2;"错误&#34))
在D6上:
= IF(C6&GT = D3; 1; IF(C6 + C5&GT = D3; 2; IF(C6 + C5 + C4&GT = D4; 3;"错误")))
你可以继续这样做,只需继续替换"错误"具有更长/更新版本的IF(C6 + C5 + C4> = D4; 3.
我不知道这是否是最佳方式,但这将实现它。
答案 2 :(得分:0)