
我有一個這樣的表:
TABLE A
NAME VALUE 1 VALUE 2 RESULT
Daniel 1 4
John 3 5
Daniel 5 8
我需要在結果列中運行 SUMIF 來檢查上述單元格(使用偏移量),如果滿足條件,我希望添加兩個(偏移量)值。我知道我可以透過執行兩個 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。
如果使用真實表的結構化引用,則需要 Offset:
=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。