答案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))