たとえば、下記の 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 関数は応用することでもう少し違う場面でも活躍してくれます。
それはまた今度。
石田かのこ