在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不要试图自己手动插入这些)。
您可以尝试使用INDEX
function来设置您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)
; 也就是说,范围内的第一个单元格与范围内的第三个单元格相差一个。