SUMPRODUCT関数

Excel 2007+

概要

SUMPRODUCT関数は、対応する配列の要素を乗算し、その結果を合計します。配列同士の積の合計を計算する強力な関数で、条件付き計算や複数条件での集計にも活用できます。

構文

SUMPRODUCT(array1, [array2], [array3], ...)

パラメータ

パラメータ タイプ 必須 説明
array1 配列 はい 計算の基盤となる最初の配列範囲。数値、範囲、または配列式を指定できます。
[array2], [array3], ... 配列 いいえ 対応する追加配列。array1と同じサイズである必要があります。

SUMPRODUCT関数の使用

SUMPRODUCTは配列の要素を対応位置で乗算し、全ての積を合計します。配列サイズが一致しない場合は#VALUE!エラーが発生します。数値以外の値は自動的に0として扱われます。条件付き計算では、ブール値(TRUE/FALSE)を1/0として処理し、フィルタリング効果を発揮します。

SUMPRODUCTの一般的な例

基本的な積の合計

=SUMPRODUCT(C2:C5,D2:D5)

C列(単価)×D列(数量)の各行積を合計し、総売上額を計算します。長い式 =C2*D2+C3*D3+C4*D4+C5*D5 と同等の結果を得られます。

複数条件での集計

=SUMPRODUCT((B2:B9="東")*(C2:C9="チェリー")*D2:D9)

地域が「東」かつ商品が「チェリー」の販売数量のみを合計。条件がTRUE(1)/FALSE(0)として自動フィルタリングされます。

売上と経費の合計(エージェント別)

=SUMPRODUCT(((Table1[売上])+(Table1[経費]))*(Table1[担当者]=B8))

特定担当者の売上+経費を合計計算。テーブル構造化参照を使用した実務例です。

よくある質問

行数または列数が一致しない場合、#VALUE!エラーが返されます。常に同一サイズの範囲を指定してください。

数値以外のエントリ(テキスト、空セル)は自動的に0として計算されます。

動作しますが、1,048,576行全てを処理するため非常に遅くなります。使用範囲を限定してください。

一般的なエラーと解決策

#VALUE!エラー

Cause: 配列のサイズ(行数×列数)が一致しない

Solution: 全ての配列範囲を同一サイズに調整してください。例:C2:C10とD2:D5はエラー。

計算結果が0になる

Cause: 非数値データが含まれている

Solution: データ確認後、必要に応じて数値変換関数を併用してください。

予期しない大きな数値

Cause: 完全列参照による全行処理

Solution: 具体的な範囲(例:A2:A1000)を指定してください。

注記

  • Excel 2007以降で利用可能
  • ブール演算により条件付き合計を実現(SUMIFSの代替)
  • 算術演算子(*,/,+,-)を直接使用可能:SUMPRODUCT((A1:A10)+(B1:B10))
  • 配列式(Ctrl+Shift+Enter)不要で簡潔
  • パフォーマンス重視時は範囲指定を最適化

互換性

利用可能: Excel 2007, Excel 2010, Excel 2013, Excel 2016, Excel 2019, Excel 2021, Microsoft 365

利用不可: Excel 2003以前

コンテンツ最終レビュー: December 9, 2025
更新頻度: 必要に応じて
テスト済みExcelバージョン: Excel 2007+