我有一张这样的桌子:
TABLE A
NAME VALUE 1 VALUE 2 RESULT
Daniel 1 4
John 3 5
Daniel 5 8
我需要在 RESULT 列中运行 SUMIF 来检查上述单元格(使用 OFFSET),如果满足条件,我希望添加两个(OFFSET)值。我知道我可以通过执行两个 SUMIF 来实现这一点,但我想知道是否可以只使用一个 SUMIF 来实现,然后使我的代码更易读、更快速。我尝试过这些,但没有成功:
SUMIF(OFFSET($A$2,0,0,ROW()-ROW($A$2),1), "Daniel", SUM(OFFSET($B$2,0,0,ROW()-ROW($B$2),1),OFFSET($C$2,0,0,ROW()-ROW($C$2),1)))
和:
IF(OFFSET($A$2,0,0,ROW()-ROW($A$2),1)="Daniel", SUM(OFFSET($B$2,0,0,ROW()-ROW($B$2),1),OFFSET($C$2,0,0,ROW()-ROW($C$2),1),0)
结果应该是:
TABLE A
NAME VALUE 1 VALUE 2 RESULT
Daniel 1 4 0
John 3 5 5
Daniel 5 8 5
John 1 5 18
答案1
如果不使用结构化表引用,则不需要偏移量:
=SUMIF($A$1:A1,"Daniel",$B$1:B1)+SUMIF($A$1:A1,"Daniel",$C$1:C1)
如果你想要一个公式那么它将是一个数组公式:
=SUM(IF($A$1:A1="Daniel",$B$1:B1+$C$1:C1,0))
根据版本的不同,退出编辑模式时可能需要使用 Ctrl-Shift-Enter 而不是 Enter。
如果使用对真实表的结构化引用,则需要偏移量:
=SUM(IF(OFFSET(Table2[[#Headers],[NAME]],,,ROW($ZZ1))="Daniel",OFFSET(Table2[[#Headers],[VALUE 1]],,,ROW($ZZ1))+OFFSET(Table2[[#Headers],[VALUE 2]],,,ROW($ZZ1)),0))
同样,根据版本的不同,退出编辑模式时可能需要使用 Ctrl-Shift-Enter 而不是 Enter。