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

=SUMPRODUCT(C3:C5,D3:D5)
SUMPRODUCT関数は、
複数の範囲の対応する要素を「掛け算」し、その結果をすべて合計する関数です。
このサンプルの場合、Excelは次の計算を内部で行っています👇
- 10 × 120 = 1,200
- 8 × 100 = 800
- 5 × 150 = 750
これらを合計して1,200 + 800 + 750 = 2,750

このように、SUMPRODUCT関数は「対応するセル同士を掛け合わせて合計したい」場面で活躍する関数です。
条件付き集計(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ではできない複雑な条件処理にも対応できるため、上級者の定番関数のひとつとされています。
関連記事:IF関数の使い方
関連記事:SUMIFS関数の使い方