条件集計(複数条件)

条件集計で、SUMIF関数までは使える方も多いと思います。しかし、条件判断が複数列のAND条件になるとお手上げになってしまいます。これを解決するのが、SUMPRODUCT関数です。

SUMPRODUCT関数をヘルプで見ても、このようなことができるようには見えません。そこで諦めていた方が多いと思います。
SUMPRODUCT関数はテーブル相互間の「積」の合計を計算してくれますが、この中で条件式を使うと「条件の成立は1」「成立しなければ0」としてかけ算されるため、結果としてAND条件(全ての条件式が「1」なら加算される)の合計になるのです。

実際にサンプルを作って見ました。
SUMPRODUCT関数のサンプル
(画像をクリックすると、実際にExcelが開きます)
「B表」の所に「項目」と「氏名」のAND条件で集計をかけている簡単なサンプルです。「項目」と「氏名」は全て2文字なので、一旦外部の関係ない場所に「項目」と「氏名」を繋げて1項目に納めれば「SUMIF関数」でも算出できるのですが、ここでは余分な領域は全く使わずに同じことを実現します。しかも、参照相手を「B表」の項目見出しの名称としているので「相対参照」と「絶対参照」の行と列の使い方をうまく行なえば、今表示されているF7セルに正しい計算式をあてはめるだけでその他の5つのセルには計算式をそのままコピーさせるだけで実用できるようになります。
R1C1参照形式の場合は


 =SUMPRODUCT((R3C1:R8C1=R6C)*(R3C2:R8C2=RC5)*(R3C3:R8C3))
となります。

このサンプルのSUMPRODUCT関数のカッコ内は、かけ算の「*」で区切られていますが、区切られた各要素の配列個数が合っていなければならないのは「当たり前」です。
ここでは、

の3つの配列個数はどれも6つのなっています。

この条件の列をさらに増やして利用することもできます。関数要素は1つの計算式で32個まで使えます。