列の条件に基づいて行を合計する

列の条件に基づいて行を合計する

私は問題に困っています、

以下のような 2 つのデータ セットがあります。

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

表 1 の ID に基づく列 "a" の合計が、ID に基づく列 "b" の合計と等しいかどうかを調べるにはどうすればよいですか? Sumif と Index Match が必要だと想定していますが、わかりません。どなたか助けていただければ幸いです。ありがとうございます!

答え1

右側にIDが表示されています

=SUM(A3,IFERROR(INDIRECT("$D"&MATCH(B3,$E:$E,0)),0))

ここで、A3 はテーブル 1 の「a」値、$D はテーブル 2 の「b」値を含む列、B3 はテーブル 1 の ID 値を含むセル、$E:$E はテーブル 2 の ID 値を含む列です。

ID が左側にある場合、VLOOKUP は次のように機能します。

=SUM(B3,IFERROR(VLOOKUP(A3,$D$3:$E$5,2,FALSE),0))

答え2

使い方:

  1. この配列数式をセルに入力しC3、 で終了してCtrl+Shift+Enter下方向に入力します。

    {=IFERROR(INDEX($B$3:$B$9, MATCH(0,COUNTIF($C$2:C2, $B$3:$B$9), 0)),"")}
    
  2. セルにD3この数式を入力して、下方向に塗りつぶします。

=IF(SUMIF(B3:B9,C3,A3:A9)=0,"",SUMIF(B3:B9,C3,A3:A9))

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

必要に応じて数式内のセル参照を調整します。

答え3

ピボット テーブルを使用すると、数回クリックするだけで表 1 から表 2 に移動できます。これは便利な組み込みウィザードで、さまざまな方法でデータを要約するのが非常に簡単になり、複雑な数式を一から考え出すのに頭を使う必要はありません。私は LibreOffice Calc を使用しているため、ユーザー インターフェイスが少し異なりますが、これを Excel に簡単に転送できます。

表 1 を強調表示し、メニューから [ピボット テーブルの挿入] を選択します。次のようなウィザードが表示されます。

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

データ列は、使用可能なフィールドのボックスで識別されます。ID を行フィールド ボックスにドラッグし、ID をaデータ フィールド ボックスにドラッグします (Excel ではこのボックスのラベルが異なると思いますが、同じボックスです)。LO Calc では、集計関数はデフォルトで Sum になっています。Excel では、私の記憶が正しければ、デフォルトで Count になっているかもしれません。その場合は、それをダブルクリックして、選択肢から Sum を選択します。

必要に応じて、行と列の合計を含めるかどうかや、ピボット テーブルをどこに貼り付けるかなど、いくつかのカスタマイズ オプションがあります。選択が完了すると、次のような結果が得られます。

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

わずか数秒で完了し、このソリューションを作成する際に脳細胞が損傷されることはありません。:-)

関連情報