SUMPRODUCT関数で複数条件に合ったデータを合計する方法

SUMPRODUCT関数で複数条件に合ったデータを合計する方法

前回はSUMPRODUCT関数で複数条件をカウントする方法について解説しました。

SUMPRODUCT関数で複数条件をカウントする方法 | Excelを制する者は人生を制す ~No Excel No Life~

SUMPRODUCT関数の応用的な使い方のもうひとつのバリエーションとして、前回の複数条件のカウントと、標準的な配列内の積の合計値を複合的に組み合わせることで複数条件に合ったデータの合計値を計算することも可能です。

なお、配列内の要素の積の合計を算出する方法については以下記事をご参照ください。

SUMPRODUCT関数で配列内の要素の積の合計を算出する方法 | Excelを制する者は人生を制す ~No Excel No Life~

今回はSUMPRODUCT関数で複数条件に合ったデータを合計する方法について解説していきます。

複数条件に合ったデータを合計する際のSUMPRODUCT関数の構成

SUMPRODUCT((条件範囲1=条件1)*(条件範囲2=条件2),合計対象範囲1)

条件範囲も合計対象範囲も配列を色分けするためにあえてそう呼ぶとします。

各条件範囲の配列と条件は”=”[イコール]でつなぎ、”()”[かっこ]でくくります。

“=”[イコール]の部分は条件に応じて不等号など代用可能です。

そして、各条件範囲の配列・条件のセットを”*[アスタリスク]“でつなげます。

条件範囲・条件の後に","[カンマ]で区切り、そのあとに合計対象範囲となる配列を指定します。

条件範囲1(2以降も同様)

[条件]を抽出する範囲を指定します。

なお、通常のSUMPRODUCT関数と同様に配列は2つ以上指定可能です。

条件1(2以降も同様)

検索対象の文字列やセル番地を指定します。

合計対象範囲1(2以降も同様)

合計対象の範囲(配列)を指定します。

なお、通常のSUMPRODUCT関数と同様に配列は2つ以上指定可能です。

ちなみに、合計対象範囲を複数にする場合、配列を","[カンマ]で区切ります。

使用例

SUMPRODUCT関数合計①

今回のサンプルでは、年齢が30歳以上、かつ雇用形態がフルタイムという2つの条件に該当するスタッフの給与合計を求めます。

まず、条件範囲1は年齢のデータ範囲であるB3:B7を指定します。

そして、条件1は30歳以上であるため、配列1のあとは「>=30」にします。

次に、条件範囲2は雇用形態のデータ範囲であるC3:C7を指定します。

そして、条件2はフルタイムであるため、配列2のあとは「=”フルタイム”」にします。

文字列を関数内に入力する際は他の関数と同様に”"[ダブルクォーテーション]でくくります。

最後に合計対象範囲であるF3:F7を指定します。

これで2つの条件に該当する給与合計である「335,000」を求めることができました!

今回のケースでは、合計対象範囲を1つで求めましたが、2つにして求めることも可能です。

合計対象範囲1をD3:D7、合計対象範囲2をE3:E7を指定すると、条件1・2を満たしたデータのそれぞれの積を合計してくれます。
(今回のサンプルでいうと「D3×E3+D6×E6」を数式内で計算している)

同じ条件をSUMIFS関数で合計する場合

SUMPRODUCT関数合計②

数式の構成が並列関数であるSUMPRODUCT関数と異なります。

合計対象範囲がこちらは数式の先頭にあり、かつ複数の範囲を選択できません。

なお、SUMIFS関数については下記記事もご参照ください。

SUMIFS関数で複数の検索条件に合ったデータのみ合計する方法 | Excelを制する者は人生を制す ~No Excel No Life~

まとめ

こちらのテクニックもSUMIFS関数が使えるようになるまでは、ほんとうにこのSUMPRODUCT関数にお世話になりました!

意外と使用頻度はありますからSUMPRODUCT関数には2003時代の支えになっていただいた感じですね。

次回はSUMPRODUCT関数とLEFT関数などの文字列関数と組み合わせて一部条件に合ったデータを合計する方法について解説していく予定です。