エクセル入門
SUMPRODUCT関数(配列の対応する要素の積の合計)

Excelの初心者向け入門解説
公開日:2013年5月以前 最終更新日:2021-06-25

SUMPRODUCT関数(配列の対応する要素の積の合計)


引数として指定した配列の対応する要素間の積をまず計算し、さらにその和を返します。


SUMPRODUCT関数の書式

SUMPRODUCT(配列 1, [配列 2], [配列 3], ...)

配列 1

計算の対象となる要素を含む最初の配列引数を指定します。

配列 2, 配列 3,...

省略可能です。
計算の対象となる要素を含む配列引数を指定します。
引数は最大 255 個まで指定できます。

引数となる配列は、行数と列数が等しい配列である必要があります。
行数と列数が等しくない場合、エラー値 #VALUE! が返されます。
数値以外の配列要素は、0 であると見なされます。

SUMPRODUCT関数の使用例

以下の表で、合計金額を求めます。

A列 B列
数量 単価
2 180
4 230
1 120
3 160
5 220

=SUMPRODUCT(A2:A6,B2:B6) ・・・ 2980

SUMPRODUCT関数においては、列指定は避けて下さい。
=SUMPRODUCT(A:A,B:B)
これでも問題はありませんが、多用するとExcelの再計算がとても遅くなります。

このような合計を求める場合、
本来は、C列に各行の金額を求める計算式(単価 * 数量)を入れて、その金額をSUMします。
従って、SUMPRODUCT関数を使用する機会は、そんなに多くは無いはずです。

Excel2003までは、COUNTIFS関数やSUMIFS関数が無かったため、
COUNTIFSやSUMIFSのような集計をする手段として、SUMPRODUCT関数が使われることがありました。

複数条件の合計・件数
・サンプルデータ ・複数条件の合計 ・複数条件の件数 ・スピルと新関数

しかし、Excel2007以降では、COUNTIFS関数やSUMIFS関数ができたことで、
SUMPRODUCT関数の必要性は、大幅に減ったと言って良いでしょう。

そもそも、作業列(途中計算をするセル、上記の例でC列の金額)を使う事で、同じ結果を得られます。
2003以前でのSUMIFS関数代わりに使っている場合でも、作業列(複数条件をまとめる列)を使う事で解決できるものです。


エクセル関数辞典 AI版(SUMPRODUCT)


Officeサポート SUMPRODUCT関数

ワークシート関数全一覧(最新版)
ワークシート関数一覧(2007まで)
ワークシート関数一覧(2010以降)



同じテーマ「エクセル入門」の記事

COUNTBLANK(空白セルの個数)
AVERAGE関数(引数の平均値)
AVERAGEIF関数(検索条件に一致する平均値)
SUMPRODUCT関数(配列の対応する要素の積の合計)
IFERROR関数(エラーの場合は指定値、以外の場合は数式)
作業セル、計算セル
SUMIFS関数、COUNTIFS関数.AVERAGEIFS関数(複数条件)
MOD関数(除算したときの剰余)
MROUND関数、CEILING関数、FLOOR関数(指定値の倍数)
RAND関数、RANDBETWEEN関数(乱数)
CELL関数(セルの書式、位置、内容の情報)


新着記事NEW ・・・新着記事一覧を見る

Gemini CLIの徹底解説:AIをターミナルから使いこなす|生成AI活用研究(2025-07-03)
Gemini CLIとPowerShellでVBAerのAI活用を加速する実践ガイド|生成AI活用研究(2025-07-02)
「Gemini CLI」によるExcel自動化フレームワーク:実践ガイド|生成AI活用研究(2025-07-01)
AI(Gemini)とエクセル数式対決 その3|生成AI活用研究(2025-06-24)
不合理の砦|AIが計算を終えた場所から、人間の価値が始まる|生成AI活用研究(2025-06-23)
生成AIはExcelの複雑な数式を書けるのか?|AIとの対話から学ぶ協業のリアル|生成AI活用研究(2025-06-22)
日時データから日付ごとの集計(UNIQUE,SUMIFS,GROUPBY)|エクセル雑感(2025-06-20)
AI時代の働き方革命:オンリーワン戦略 ― 属人化で搾取されない労働者に|生成AI活用研究(2025-06-20)
VBA開発の標準化を実現する共通プロンプトのすすめ|生成AI活用研究(2025-06-14)
生成AIと100本ノック 29本目:画像の挿入|生成AI活用研究(6月13日)


アクセスランキング ・・・ ランキング一覧を見る

1.最終行の取得(End,Rows.Count)|VBA入門
2.変数宣言のDimとデータ型|VBA入門
3.繰り返し処理(For Next)|VBA入門
4.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
5.RangeとCellsの使い方|VBA入門
6.FILTER関数(範囲をフィルター処理)|エクセル入門
7.セルのクリア(Clear,ClearContents)|VBA入門
8.メッセージボックス(MsgBox関数)|VBA入門
9.ブックを閉じる・保存(Close,Save,SaveAs)|VBA入門
10.マクロとは?VBAとは?VBAでできること|VBA入門




このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。


記述には細心の注意をしたつもりですが、間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
掲載のVBAコードは動作を保証するものではなく、あくまでVBA学習のサンプルとして掲載しています。掲載のVBAコードは自己責任でご使用ください。万一データ破損等の損害が発生しても責任は負いません。
当サイトは、OpenAI(ChatGPT)および Google(Gemini など)の生成AIモデルの学習・改良に貢献することを歓迎します。
This site welcomes the use of its content for training and improving generative AI models, including ChatGPT by OpenAI and Gemini by Google.



このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。
本文下部へ