excel複数の掛け算の結果を合計する -SUMPRODUCT 関数-

たとえば、下記の 3 つの段ボール箱にそれぞれの商品が梱包されており、

段ボール箱がそれぞれ複数あるとします。




全部で商品の数はいくつあるかを知りたいとしましょう。

答えにたどり着く、その方法いくつか考えられますね。




一番よく見かけるのは、下図の [数量] のような場所を用意して、

「1袋あたりの個数×1箱あたりの袋の数×箱の数」という数式を作成して、まずは商品ごとの

数量を求めてから、SUM 関数を使って合計する方法です。





SUMPRODUCT 関数を使用すると、[数量] のような一時計算用の数式を用意せずに

同じ結果を得ることができます。




SUMPRODUCT 関数は、引数として指定した配列の対応する要素間の積をまず計算し、

さらにその和を返す関数です。





あら、ややこしい。。。




積は掛け算の結果、和は足し算の結果です。

いくつかの掛け算の結果を最後に全部合計してください、というイメージです。




“配列” だとイメージがつきにくい、わかりにくいという場合は、“セル範囲” に、

“要素” だとわかりにくいという場合は、“セル” に置き換えてイメージしてください。

厳密には異なりますが、まずはイメージをつかむことが大切なので。




下図の表の場合、3 つの “配列” があり、配列の中には “要素” が 3 つずつ含まれています。




配列 1 には、①、②、③ の要素がある。

配列 2 には、④、⑤、⑥ の要素がある。

配列 3 には、⑦、⑧、⑨ の要素がある。





数式は、「=SUMPRODUCT(配列1,[配列2],[配列3],…)」というように引数を指定して作成します。




引数となる配列は最大 255 個まで指定できます。

なお、引数として指定する複数の配列は、行数と列数が等しい配列である必要があり、

行数と列数が等しくない場合、エラー値 #VALUE! が返されます。

数値以外の配列要素は、0 であると見なされて計算されます。




SUMPRODUCT 関数は、配列の対応する要素間の積をまず計算し、さらにその和を返します。

ということは、下図の場合は、=SUMPRODUCT (配列 1,配列 2,配列 3) という数式を作成すると、

=①×④×⑦+②×⑤×⑧+③×⑥×⑨ という数式と同じ結果が返るということです。








「一番よく見かける方法」が悪いのではなくて、「こういう方法もあるよ」ということで。




商品ごとの数量の合計もわかるようにしたいのであれば、一時計算用の数式を作るべきなのです。

そうではなくて、商品ごとの数量は表示する必要がないのに SUM 関数で合計値を求めるために

しかたなく作っている、というのであれば SUMPRODUCT 関数で解決できますね。




そして、SUMPRODUCT 関数は応用することでもう少し違う場面でも活躍してくれます。

それはまた今度。