【Excel・エクセル】SUMPRODUCT関数の使い方!掛け算したものを足し算

金額と個数をかけ算したものを、足し算していかなきゃ。

それなら、SUMPRODUCT関数を使ってみよう。
- 積の合計を求めるならSUMPRODUCT関数
- =SUMPRODUCT(配列1,配列2,配列3……)
- 配列には条件の指定もできる
- ワイルドカードは使えない
SUMPRODUCT関数の練習ファイルダウンロード

一緒にやってみませんか?
【Excel・エクセル】積を合計する、SUMPRODUCT関数とは

SAMは足し算する関数、PRODUCTはかけ算する関数ですよね。
つまりSUMPRODUCT関数は、足し算と掛け算を組み合わせた関数なんです。

かけ算して出た積(かけ算の答え)を、足していってくれるんよ。

今までそれぞれの金額を出して、それを合計してたけど、コレなら一発でできるんだね。
ちなみに読み方は「サムプロダクト関数」です。
ではさっそく、使い方を見ていきましょう!
【Excel・エクセル】SUMPRODUCT関数の使い方
=SUMPRODUCT(配列1,[配列2],[配列3]……)
SUMPRODUCT | 配列1と配列2と……をかけ算して、出た答えを合計してね |
配列1 | かけられる数の範囲 |
配列2 | かける数の範囲 |

配列1×配列2って感じかな。
ちなみに配列の範囲(広さ)は、同じじゃないといけません。
範囲が違うとエラーになってしまうので、ご注意ください。

SUMPRODUCT関数の使用例
では次の図のセルA7に、B列とC列の積の合計を出してみましょう。


=SUMPRODUCT(B2:B4,C2:C4)で、求められるよ。説明するね。
ステップ1
セルA7に、「=SUMPRODUCT(」と入力してください。
または、「=SUMP」まで入力して「TABキー」でもOKです。

ステップ2
まずは●×■の●の部分を決めます。
今回は、B列とC列の数値をかけ算したいので、まずはB列、セルB2~B4ですね。
セルB2~B4をドラッグして、「,(カンマ)」を入力してください。

ステップ3
次は●×■の■の部分です。
今回はC列、セルC2~C4ですね。
セルC2~C4をドラッグして、カッコを閉じてください。

完成!
エンターキーを押すと、積の合計が出ました!
ためしにB列とC列をかけ算したものをD列に出して、そられを合計してみると、同じ数値になりましたね!

【Excel・エクセル】SUMPRODUCT関数の使い方、応用編
このSUMPRODUCT関数ですが、計算するだけではありません。

と、言いますと?
実は引数(配置)には文字列なども使えます。
これを使って、条件に合うセルの数や、条件に合うセルの合計も分かっちゃいます!(ただちょっとポイントがあります)

理論式が使えるんよ。
※練習ファイルをダウンロードされた方は、Sheet2を開いてください。
SUMPRODUCT関数で、条件に合うセルの合計を求める
SUMPRODUCT関数を使うと、SUMIF関数のように、条件に合う値の合計ができます。
書き方は以下の通り。
=SUMPRODUCT((配列1=条件)*(配列2))
=SUMPRODUCT((範囲と条件)*(合計したい範囲)))
厳密には配列1、2と呼ぶのはちょっと違う気もしますが、便宜上そう呼ばせてください。
「配列=条件」と書きましたが、もちろん不等号(>,<)も使えます。
配列1の中で3以上のものなら、「配列1>=3」といった具合です。
ちなみに、ワイルドカードは使えません……。
この表のセルE2に、商品名がアメの合計金額を出したいと思います。


配列1と2を、「,(カンマ)」じゃなくて「*(アスタリスク)」でつなげるのがポイントなんよ。
複数条件の合計を求めたい場合は、こちらをご参照ください。
ステップ1
何はともあれ、まずはセルE2に、「=SUMPRODUCT(」と入力します。
「=SUMP」まで入力して「TABキー」でもOKです。

ステップ2
次に配列1ですが、その前に「(」をもう一つ入れるのを忘れないでくださいね!
入力したら、今回アメの単価を合計したいので、商品名が書かれたセルA2~A10をドラッグします。

ステップ3
続いて条件ですが、今回は「商品名がアメ」が条件なので、「="アメ"」となりますね。
続いて「)」、配列2へ移るので「*」を忘れずに!


文字列の時は「"(ダブルクォーテーション)」で囲むんだよね。
ステップ4
配列2もそのままセル範囲をドラッグしたくなりますが、ここはぐっとこらえて「(」を入れましょう。
入れたら配列2を選択します。
今回は合計金額を出したいので、単価が書かれたセルC2~C10をドラッグします。
配列2まで終わったのでカッコで締めたいのですが、ここもまたちょっとややこしく、「))」とカッコが二つ続くのでご注意ください。


配列2が終わる「)」と、SUMPRODUCT関数が終わる「)」だね。
完成!
これで式は完成です。
エンターキーで確定すると……
無事、アメの金額だけを合計できました!

SUMPRODUCT関数で、複数条件に合うセルをカウントする
SUMPRODUCT関数を使うと、COUNTIFS関数のように、条件に合うセルの数をカウントできます。
書き方は以下の通り。
=SUMPRODUCT((配列1=条件)*(配列2=条件))
=SUMPRODUCT((範囲と条件1)*(範囲と条件2))
厳密には配列1、2と呼ぶのはちょっと違う気もしますが、便宜上そう呼ばせてください。
こちらも、もちろん不等号(>,<)が使えます。
配列の中で3以上のものなら、「配列1>=3」といった具合です。

これも配列1と2を、「,(カンマ)」じゃなくて「*(アスタリスク)」でつなげるのがポイントなんよ。
「*」でつなげれば、条件を3つ4つと増やせます。
この表のセルE5に、商品名がアメかつ、味がバナナの数をカウントしたいと思います。

ステップ1
お分かりかと思いますが、まずはセルE5に、「=SUMPRODUCT(」と入力します。
「=SUMP」まで入力して「TABキー」でもOKです。

ステップ2
次に配列1ですが、その前に「(」をもう一つ入れますよ!
入力したら、今回は1つ目の条件としてアメをカウントしたいので、商品名が書かれたセルA2~A10をドラッグします。

ステップ3
条件は「商品名がアメ」なので、「="アメ"」となりますね。
続いて「)」、配列2へ移りますがカンマではなく「*」なので、お間違いなきよう!

ステップ4
さて配列2……とその前に、「(」を入れましょう。
入れたら、2つ目の条件の範囲を選択します。
今回はバナナ味の数をカウントしたいので、味が書かれたセルB2~B10をドラッグします。

ステップ5
次に2つ目の条件を指定します。
今回は、バナナ味の数をカウントしたいので、「="バナナ"」と入力します。
さてさて配列2まで終わったのでカッコで締めるんですが、「))」とカッコが二つ続くのでご注意ください。

完成!
これで式は完成です。
エンターキーで確定すると……
無事、バナナ味のアメの個数がカウントできました!

SUMPRODUCT関数で、複数条件に合うセルの合計を求める
SUMPRODUCT関数を使うと、SUMIFS関数のように、複数の条件に合うセルの数値を合計できます。
書き方は以下の通り。
=SUMPRODUCT((配列1=条件)*(配列2=条件),配列3)
=SUMPRODUCT((範囲と条件1)*( 範囲と条件2),合計したい範囲))
厳密には配列1、2と呼ぶのはちょっと違う気もしますが、便宜上そう呼ばせてください。
こちらも、不等号(>,<)が使えますよ。
配列の中で3以上のものなら、「配列1>=3」といった具合です。

これも配列1と2を、「,(カンマ)」じゃなくて「*(アスタリスク)」でつなげるのがポイント!
こちらも「*」でつなげば、条件を3つ、4つと増やせますよ。
この表のセルE8に、商品名がガムかつ、味がみかんの金額を合計したいと思います。

ステップ1
まずはセルE5に、「=SUMPRODUCT(」と入力します。
「=SUMP」まで入力して「TABキー」でもOKです。

ステップ2
次に配列1ですが、ここでも「(」をもう一つ入れますよ!
入力したら、今回は1つ目の条件としてガムをカウントしたいので、商品名が書かれたセルA2~A10をドラッグします。

ステップ3
続いて条件は「商品名がガム」なので、「="ガム"」となりますね。
続いて「)」、配列2へ移るので「*」を忘れずに!

ステップ4
次に「(」を入力して、2つ目の条件の範囲を選択します。
今回はみかん味なので、味が書かれたセルB2~B10をドラッグします。

ステップ5
次に2つ目の条件を指定します。
今回はみかん味の金額を合計したいので、「="みかん"」と入力します。
カッコで締め、次の引数に移るので「,(カンマ)」も入れておいてくださいね。


カンマ、久しぶり。
ステップ6
最後に、合計する数値の範囲を指定します。
今回は金額の合計を出したいので、単価が書かれたセルC2~C10ですね。
セルC2~C10をドラッグして、式は完成なのでカッコを閉じます。

完成!
これで式は完成です。
エンターキーで確定すると……
無事、みかん味のガムの合計金額が出せました!

なんでSUMPRODUCT関数で条件が指定できるの?

ここは読み飛ばしても大丈夫!
SUMPRODUCT関数は掛け算の積を合計する関数なのに、なんで条件の指定ができるのか?
例えば複数条件に合うセルの個数が分かる「=SUMPRODUCT((A2:A10="アメ")*(B2:B10="バナナ"))」で見てみましょう。
(A2:A10="アメ") や (B2:B10="バナナ") は理論式と言って、合っていたら1、違っていたら0になります。

そういう宿命なのか。
二つを「*」で掛け算しているので、どちらも合っている場合だけ、1×1で1。
どちらかが合っていなかったら0を掛けて0になります。

で、SUMPRODUCT関数は出てきた積を合計する関数なので、すべての答え(上の図の赤字部分)を足し算していきます。

両方合ってる1だけが、合計されていくんだね。
そう、つまり、どちらの条件も満たす件数が分かるというわけなのでした。
SUMPRODUCT関数は工夫次第で、いろんなシーンんで使えそうですね!
それでは、お疲れさまでした!
- 積の合計を求めるならSUMPRODUCT関数
- =SUMPRODUCT(配列1,配列2,配列3……)
- 配列には条件の指定もできる
- ワイルドカードは使えない
ディスカッション
コメント一覧
まだ、コメントがありません