ITライター 立山秀利
Excelでは、単価×数量を合計して複数の商品の売り上げ求めたいとき、掛け算と足し算を組み合わせて行うことがあるだろう。その場合、SUMPRODUCT関数を利用すれば、掛け算と足し算をまとめて行える。今回はSUMPRODUCT関数の使い方を解説する。
Excelで請求書や納品書などを作成する際、複数の商品の単価と数量をそれぞれ掛けた小計を合計して金額を求めることになる。その際、各商品の単価と数量を掛けて小計を求める数式を記述した後、それらの値をSUM関数などで合計するという方法をまず思い浮かべる人も多いだろう。
例えば、店舗と商品、単価、数量という列で構成される売上の表があり、C2~C10セルに単価、D2~D10セルに数量が入力されているとする。単価×数量を合計した売上をE12セルに求めたいとする。この場合、E2セルなら「=C2*D2」など、まずは小計を求める式をE2~E10セルに入力し、E2~E10セルの合計をE12セルにSUM関数を使って入力する方法が一般的だ。
(画像をクリックすると拡大表示します)
その方法でも誤りではないが、単価と数量を掛ける数式を商品の数だけいちいち記述しなければならないので手間がかかる。しかも、請求書や納品書などに小計欄を設けたくない場合、別途用意したセルに小計を求める数式を記述した後に非表示にするなど、さらに手間を要してしまう。
そのようなときはSUMPRODUCT関数を利用するのが得策だ。複数のセル範囲の対応するセル同士の積の合計を求める関数である。同関数なら、単価×数量の合計が関数ひとつで直接求めることができる。書式は次の通りだ。
----------------------------------------
=SUMPRODUCT(配列1,配列2,…)
配列 積の合計を求めたいデータのセル範囲
----------------------------------------
先ほどの売上の表にて、このSUMPRODUCT関数を使い、単価×数量を合計した売上をD2セルに求めたいとする。引数「配列1」には、単価のデータが入力されているC2~C10セル、引数「配列2」には、数量のデータが入力されているD2~D10セルを指定すればよい。
----------------------------------------
=SUMPRODUCT(C2:C10,D2:D10)
----------------------------------------
上記のSUMPRODUCT関数をD2セルに入力すると、単価×数量の合計が求められる。
(画像をクリックすると拡大表示します)
さらにSUMPRODUCT関数の高度な使い方として、指定した条件に合致する積だけの合計を求めることができる。
----------------------------------------
=SUMPRODUCT((条件式1)*(条件式2),配列1,配列2,…)
条件式1 1つ目の条件式
条件式2 2つ目の条件式
配列 積の合計を求めたいデータのセル範囲
----------------------------------------
条件式の書式は「配列 比較演算子 値」だ。例えば、「A2~A10セルのデータが『新宿』と等しい」という条件式なら「A2:A10="新宿"」となる。
例えば、先ほどの売上の表にて、新宿店で単価が1500円以上の商品の「単価×数量」の合計をD12セルに求めたいとする。条件式1には、店舗のデータ(A2~A10セル)が「新宿」と等しいかどうかを判定する「A2:A10="新宿"」を指定すればよい。条件式2には、単価のデータ(C2~C10セル)が1500以上かどうかを判定する「C2:C10>=1500」を指定すればよい。以上を踏まえると、D12セルには次のSUMPRODUCT関数を入力すればよいことになる。
----------------------------------------
=SUMPRODUCT((A2:A10="新宿")*(C2:C10>=1500),C2:C10,D2:D10)
----------------------------------------
(画像をクリックすると拡大表示します)
注意して欲しいのが、条件式は必ず2つ用意し、「(条件式1)*(条件式2)」の形式で指定しなければならない点だ。条件式が1つだとエラーになってしまう。そのため、1つの条件のみで積の合計を求めたい場合は、同じ条件式を条件式1と条件式2に指定する必要がある。たとえば、先ほどの売上の表にて、新宿店の単価×数量の合計をD12セルに求めたいなら、条件式1にも条件式2にも「A2:A10="新宿"」を指定する。
----------------------------------------
=SUMPRODUCT((A2:A10="新宿")*(A2:A10="新宿"),C2:C10,D2:D10)
----------------------------------------
(画像をクリックすると拡大表示します)
このように、SUMPRODUCT関数を使えば、関数一つによるシンプルな数式で、積の合計を容易に求めることができるようになる。
立山秀利(たてやま・ひでとし)
カーナビのソフトウェア開発、Webプロデュース業務を経て、現在は、システムやネットワーク、Microsoft Officeを中心に執筆中。 主な著書に『Excel VBAのプログラミングのツボとコツがゼッタイにわかる本』などがある。
(監修:日経BPコンサルティング)