仕事で役に立ったノウハウなどをつらつらと

お仕事メモ

Excel

SUMPRODUCT関数

更新日:


他の関数に比べて使用するのに若干ハードルが高いですが、覚えればかなり有用なExcel関数を紹介します。

SUMPRODUCT関数は行と列で構成された表に対して、条件にマッチするデータの件数、合計を計算する関数です。

売上データなどから商品ごとの売上数、売上額などを計算する際に使用することが想定されます。

1.関数説明

SUMPRODUCT(配列1、[配列2]・・)

配列は{1;0;1}のような形式で記載することもできますが、通常はセルの範囲を指定して使用します。

通常は1列複数行の範囲を指定すること多いと思います。

配列2以降も指定することで、指定した配列の要素の積の合計を求めることができますが、ここでは使用しません。


2.使用例 件数を求める場合

次のような売上データが存在する場合に、商品ごとの売上回数を求めます。




以下のように関数を設定します。

最初の等式(Sheet1!$C$3:$C$9=Sheet2!$B13)は「売上データの商品コード(C列)」=「売上回数を求めたい商品コード」の条件を示しています。

この等式の結果としてtrueまたはfalseの値を持つ配列が作成されます。

この配列に対して最後の「*1」が適用され、trueの件数が計算されます。



以下のように計算されていきます。

売上データの中から検索対象の商品コードにマッチする行を特定
Sheet1!$C$3:$C$9=Sheet2!$B13 ⇒ {TRUE;FALSE;TRUE;TRUE;TRUE;TRUE;FALSE}

マッチした行のみ件数を合計するために1と乗算
({TRUE;FALSE;TRUE;TRUE;TRUE;TRUE;FALSE})*1 ⇒ {1;0;1;1;1;1;0}

要素を合計
SUMPRODUCT({1;0;1;1;1;1;0}) ⇒ 5


3.使用例 合計値を求める場合

2の使用例と同じ売上データを対象として、商品ごとの売上金額を計算します。

以下のように関数を設定します。

2の使用例と異なる部分は「*1」の部分が売上データの売上額の列の範囲指定に変わったところです。

「売上データの商品コード(C列)」=「売上回数を求めたい商品コード」の条件を適用した結果配列に対して、売上額の列を乗算することで条件に一致する商品の売上額合計が得られます。



以下のように計算されていきます。

売上データから検索対象の商品コードにマッチする行を特定
Sheet1!$C$3:$C$9=Sheet2!$B13 ⇒ {TRUE;FALSE;TRUE;TRUE;TRUE;TRUE;FALSE}

売上データから売上額列を取得
Sheet1!$F$3:$F$9 ⇒ {300;1000;900;1200;1500;1800;7000}

マッチした行の売上額を合計するため、条件の検索結果配列と売上額列1を乗算
({TRUE;FALSE;TRUE;TRUE;TRUE;TRUE;FALSE})*{300;1000;900;1200;1500;1800;7000} ⇒ {{300;0;900;1200;1500;1800;0}

要素を合計
SUMPRODUCT({300;0;900;1200;1500;1800;0}) ⇒ 5,700


4.使用例 複数の条件を使用する場合

2の使用例と同じ売上データを対象として、商品、売上日ごとの売上回数を計算します。

以下のように関数を設定します。

2の使用例と異なる部分は「*1」の前の条件が増えたところです。

()の中に「配列=検索値」を記載したもの同士を「*」でつなぐことで、配列の積を計算できます。

「売上データの商品コード(C列)」=「売上回数を求めたい商品コード」の条件を適用した結果配列に対して、「売上データの売上日(B列)=「売上回数を求めたい売上日」の条件を適用した結果配列を乗算することで、2つの条件を満たす要素のみtrueが設定され、その他の要素はfalseになります。

最後に上記に対して「*1」をすることで複数の条件を満たすデータの集計が可能になります。



-Excel

Copyright© お仕事メモ , 2023 All Rights Reserved Powered by STINGER.