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

Excelの初心者向け入門解説
最終更新日:2020-05-06

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関数が使われることがありました。

複数条件の合計・件数
複数条件の合計、複数条件の件数を求める関数式です。以下の表で説明します。複数条件の合計 「みかん」の「M」の合計売上は まず、2007以降ならSUMIFSが使えますので、問題はないと思います。=SUMIFS(C2:C10,A2:A10,"みかん",B2:B10,"M") SUMIFS(合計範囲,

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

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


ワークシート関数一覧
Excelワークシート関数の一覧と解説です、詳細解説ページへのリンクもあります。Excel2007までの関数です。2010以降追加の関数一覧 ワークシート関数の一覧(2010以降) 引数、関数構文については Excelシートの複雑な計算式を解析するVBAの関数構文 文字列関数…27 日付と時刻の関数…21 情報関数…17 論理関数…7 検索/行列関数…1…

ワークシート関数の一覧(2010以降)
Excelワークシート関数の一覧と解説です。Excel2010以降に追加された関数一覧になります。2007までのワークシート関数一覧ワークシート関数の一覧 引数、関数構文については Excelシートの複雑な計算式を解析するVBAの関数構文 Excel2010で追加されたワークシート関数 Excel2013で追加されたワークシート関数 関数名 種類と説明 …



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

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


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

Variantの数値型と文字列型の比較|エクセル雑感(7月1日)
VBAのVariant型について|VBA技術解説(6月30日)
VBAのString型の最大文字数について|エクセル雑感(6月20日)
VBAで表やグラフをPowerPointへ貼り付ける|VBAサンプル集(6月19日)
アクティブシート以外の表示(Window)に関する設定|VBA技術解説(6月17日)
マクロ記録での色のマイナス数値について|エクセル雑感(6月16日)
ツイッター投稿用に文字数と特定文字で区切る|エクセル雑感(6月15日)
日付の謎:IsDateとCDate|エクセル雑感(6月14日)
IFステートメントの判定|エクセル雑感(6月13日)
インクリメンタルサーチの実装|ユーザーフォーム入門(6月12日)


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

1.最終行の取得(End,Rows.Count)|VBA入門
2.RangeとCellsの使い方|VBA入門
3.変数宣言のDimとデータ型|VBA入門
4.マクロって何?VBAって何?|VBA入門
5.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
6.Range以外の指定方法(Cells,Rows,Columns)|VBA入門
7.繰り返し処理(For Next)|VBA入門
8.セルに文字を入れるとは(Range,Value)|VBA入門
9.とにかく書いてみよう(Sub,End Sub)|VBA入門
10.マクロはどこに書くの(VBEの起動)|VBA入門




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


記述には細心の注意をしたつもりですが、
間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
掲載のVBAコードは動作を保証するものではなく、あくまでVBA学習のサンプルとして掲載しています。
掲載のVBAコードは自己責任でご使用ください。万一データ破損等の損害が発生しても責任は負いません。



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