
次のような表があります:
TABLE A
NAME VALUE 1 VALUE 2 RESULT
Daniel 1 4
John 3 5
Daniel 5 8
RESULT 列内で SUMIF を実行して上記のセルをチェックし (OFFSET を使用)、条件が満たされた場合は両方の (OFFSET) 値を追加する必要があります。2 つの SUMIF を実行することでこれを実現できることはわかっていますが、1 つだけを使用してコードを読みやすく高速化できるかどうかを知りたいです。次の方法を試しましたが、うまくいきませんでした。
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)
1 つの数式が必要な場合は、配列数式になります。
=SUM(IF($A$1:A1="Daniel",$B$1:B1+$C$1:C1,0))
バージョンによっては、編集モードを終了するときに Enter ではなく Ctrl + Shift + 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))
繰り返しになりますが、バージョンによっては、編集モードを終了するときに Enter ではなく Ctrl + Shift + Enter を使用する必要がある場合があります。