在Excel中贪婪的总和

我有一个问题来创build公式(不是macros,这很容易)执行“贪婪”的总和。 “贪婪”总和在一行中增加值达到指定限制。 例如:如果限制为3,并且在行中,我有值1; 1; 2 =>公式应返回2(1 + 1,因为加2将超过限制)

你可以帮我吗?

假设A2:C2值和A1阈值, 数组公式**

=IF(A2>A1,"No Solution",IF(SUM(A2:C2)<=A1,SUM(A2:C2),SUM(A2:INDEX(A2:C2,MATCH(TRUE,MMULT(A2:C2,0+(COLUMN(A2:C2)>=TRANSPOSE(COLUMN(A2:C2))))>A1,0)-1))))

问候

**数组公式不是以与“标准”公式相同的方式input的。 按住CTRL键和SHIFT键,而不是按下ENTER键,然后按ENTER键。 如果你做得对,你会注意到Excel在公式周围放置了大括号(尽pipe不要试图自己手动插入这些)。

您可以尝试使用INDEXfunction来设置您input范围的限制。 假设你有数字

 1; 1; 5; 2; 1; 1; 1; 1 

在单元格F1:M1 ,然后是公式

 =SUM(INDEX(F1:M1,1,1):INDEX(F1:M1,1,3)) 

会返回(1 + 1 + 5) ; 也就是说,范围内的第一个单元格与范围内的第三个单元格相差一个。