複数の配列を掛け合わせて合計を出す、配列演算の万能関数が「SUMPRODUCT関数」です。
関数名の通り「SUM(合計)」と「PRODUCT(積)」を組み合わせた動作をします。
この記事では、SUMPRODUCT関数の基本的な書式から、条件付き集計やIFの代替活用まで、実務で役立つ使い方をわかりやすく解説します。
SUMPRODUCT関数とは?
SUMPRODUCT関数は、複数の配列(範囲)を要素ごとに掛け合わせたうえで、すべて合計する関数です。
書式
=SUMPRODUCT(配列1, [配列2], …)
引数の意味
- 配列1, 配列2, …:掛け算する数値の配列(範囲)。2つ以上指定可。
基本的な使い方
例1:単純な掛け算と合計
=SUMPRODUCT(A2:A4, B2:B4)
→ A列の数量 × B列の単価 の合計金額を求める
数量(A) | 単価(B) |
---|---|
2 | 100 |
3 | 200 |
1 | 150 |
→ 計算結果:2×100 + 3×200 + 1×150 = 950 |

条件付き集計(IFの代用)
SUMPRODUCTは条件付きの集計にも活用できます。IF関数を使わずに複雑な条件を実現できるのが強みです。
例2:条件付き合計
=SUMPRODUCT((A2:A10=”男性”)*(B2:B10))
→ A列が「男性」の行に対応するB列の合計を求める
※条件式の部分 (A2:A10="男性")
は TRUE/FALSE を 1/0 に変換して機能

複数条件の集計
AND条件も掛け合わせるだけで簡単に実現できます。
例3:複数条件(AND)の合計
=SUMPRODUCT((A2:A10=”男性”)*(B2:B10>20)*(C2:C10))
→ A列が「男性」かつ B列が20より大きい行の C列を合計
応用例
1. 加重平均の計算
=SUMPRODUCT(A2:A10, B2:B10) / SUM(B2:B10)
→ A列が得点、B列が重み(比率など)の場合に加重平均を求める
2. 複数条件での件数カウント(COUNTIF代替)
=SUMPRODUCT((A2:A10=”東京”)*(B2:B10=”営業”))
→ 東京 × 営業 に該当する件数をカウント(合計 1)
注意点
- 配列のサイズ(行数・列数)は一致させる必要あり
- 配列内に文字列が混ざるとエラーの原因になる
- 配列演算の中ではカッコが重要(条件のグルーピング)
関連関数
関数 | 内容 |
IF | 条件に応じた値を返す(SUMPRODUCTで代用可) |
SUMIFS | 条件付きの合計を出す |
COUNTIFS | 条件付きの件数カウント |
AVERAGEIFS | 条件付きの平均を出す |
まとめ
SUMPRODUCT関数は、条件付き合計・加重平均・複数配列の演算などに強い、柔軟で高性能な関数です。
IF関数やSUMIFSではできない複雑な条件処理にも対応できるため、上級者の定番関数のひとつとされています。