![SUMPRODUCT関数で配列内の要素の積の合計を算出する方法](https://i0.wp.com/excel-master.net/wp-content/uploads/2014/06/SUMPRODUCT%E9%96%A2%E6%95%B0%E3%81%A7%E9%85%8D%E5%88%97%E5%86%85%E3%81%AE%E8%A6%81%E7%B4%A0%E3%81%AE%E7%A9%8D%E3%81%AE%E5%90%88%E8%A8%88%E3%82%92%E7%AE%97%E5%87%BA%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95.png?fit=500%2C263&ssl=1)
Excelで数値を扱う表では、表の中の各データ群を計算することが多いでしょう。
よく見受けられるのは四則演算を必要に応じて行い、その結果をSUM関数などで合計値を出すというケースですね。
しかし、表の形式によっては合計値を算出する前の各データ群の個別の計算が煩雑な場合も。
そのデータ群の個別の計算が乗算(掛け算)であれば、配列関数であるSUMPRODUCT関数が効果的です。
今回はSUMPRODUCT関数で配列内の要素の積の合計を算出する方法について解説します。
SUMPRODUCT関数の基本構成
SUMPRODUCT(配列1,[配列2]…)
配列1
計算したい対象のデータ範囲を指定します。
なお、複数の列・行を選択可能です。
配列2以降
「配列1」といっしょに計算したい対象のデータ範囲を指定します。
なお、配列は2~255まで設定可能です。
ちなみに、各配列は同じ行数・列数にしておかないとエラーになります。
使用例
今回のサンプルでは各スタッフの給与(時給と就業時間の積)の合計値を算出したいとします。
その場合、各スタッフの給与を算出し、SUM関数などで合計を出せば簡単に算出できますが、SUMPRODUCT関数であれば、各スタッフの給与の計算を抜きにして給与合計を算出することが可能です。
SUMPRODUCT関数の「配列1」には時給に該当するB3:B7を指定、就業時間に該当するC3:C7を指定します。
すると、上図のD列にあるようにB列とC列の各行のデータの積(スタッフごとの給与)を関数内で処理し、合計してくれます。
結果としては、各行の積を求めたものをSUM関数で算出したD8セルとSUMPRODUCT関数で算出したC11セルの結果は同一となっています。
【補足】配列は複数行・列に対応!
ひとつひとつの配列が2列以上でも問題ないです。
上図にて、それぞれの配列内の要素で乗算される対象に同じ色に塗りつぶしてみました。
ちなみに、各配列は左右横並びの必要はなく、上図のように上下に並べても問題なく計算されます。
あくまでも、各配列が同じ行数・列数であることが前提ということですね。
その他の使用例
- SUMPRODUCT関数で複数条件をカウント
- SUMPRODUCT関数で複数条件に合ったデータを合計
- SUMPRODUCT関数とLEFT関数などの文字列関数と組み合わせて一部条件に合ったデータを合計
詳細は、今後別記事でご紹介する予定です。
※2014/5/21に更新しました↓
SUMPRODUCT関数で複数条件をカウントする方法 | Excelを制する者は人生を制す ~No Excel No Life~
※2014/5/22に更新しました。↓
SUMPRODUCT関数で複数条件に合ったデータを合計する方法 | Excelを制する者は人生を制す ~No Excel No Life~
Excel内の類似機能
四則演算とSUM関数の合わせ技
先に説明した通り、一般的には四則演算にて各要素の積を求め、それをSUM関数で合計値を求めることがベターです。
合計の内訳も可視化されますからね。
まとめ
SUMPRODUCT関数は並列のデータを用いるため、関数初心者にはとっつきにくく、マニアックな印象を与える関数です。
しかし、状況によっては求めたい計算結果を手早く算出できますので、SUM関数やSUMIF関数に慣れた方はマスターしておくと良いでしょう。
次回以降はSUMPRODUCT関数で複数条件のカウントを行う方法について解説していく予定です。