Excel SUMIF - OFFSET 条件が満たされた場合、同じ行の 2 つの OFFSET セルを合計します

Excel SUMIF - OFFSET 条件が満たされた場合、同じ行の 2 つの OFFSET セルを合計します

次のような表があります:

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 を使用する必要がある場合があります。

ここに画像の説明を入力してください

関連情報