添加直到达到某个值并返回另一个单元格的内容

添加直到达到某个值并返回另一个单元格的内容

所以我有给定的表格。

桌子

公式将在 中B6。问题如下:首先我需要测试是否B2>= B5。如果是,我需要返回B1(第 1 周),否则添加B2+C2并测试总和是否 >= B5。如果是,则返回C1(第 2 周)等等。

我知道如何使用函数来实现IF,但是有 50 列。

答案1

如果有 BYCOL 和 LAMBDA,则可在 Office 365 中使用:

=INDEX(B1:G1,IFERROR(MATCH(B5,BYCOL(B2:G2,LAMBDA(a,SUM(B2:a))))+1,1))

BYCOL(B2:G2,LAMBDA(a,SUM(B2:a)))返回总和的数组。

然后 MATCH 找到数量落在哪里并将其返回给 INDEX。如果第一周就达到数量,则会出现 IFERROR。

注意:如果数组中的数字为负数,则此方法不起作用,因为它会产生假阳性。

在此处输入图片描述

如果没有 Office 365,我们可以在 SUMIF 中使用 OFFSET 来返回数组:

=INDEX(B1:G1,IFERROR(MATCH(B5,SUMIF(OFFSET(B2,0,0,1,ROW($ZZ$1:INDEX($ZZ:$ZZ,COUNT(2:2)))),"<>"))+1,1))

这可能需要在退出编辑模式时使用 Ctrl-Shift-Enter 而不是 Enter。

SUMIF(OFFSET(B2,0,0,1,ROW($ZZ$1:INDEX($ZZ:$ZZ,COUNT(2:2)))),"<>")与上面的 BYCOL/LAMBDA 相同。

在此处输入图片描述

但考虑到以上所有情况,如果只进行行下方的累计总计,会更容易:

=SUM($B$2:B2)

将其放在 B3 中并拖拽复制过去。

在此处输入图片描述

然后只需使用 INDEX/MATCH:

=INDEX(B1:G1,IFERROR(MATCH(B5,B3:G3)+1,1))

在此处输入图片描述

相关内容