6/18/2020

Excel。SUMPRODUCT関数は便利と聞くけど、どんな時につかうの?【SUMPRODUCT】

Excel。SUMPRODUCT関数は便利と聞くけど、どんな時につかうの?

<SUMPRODUCT関数>

SUMPRODUCT関数は、SUM=足し算とPRODUCT=掛け算を組み合わせた関数なのですが、どのような時につかったらいいのかを今回はご紹介します。

次の表をつかって、説明します。
 
A1:B6の表は生年月日を管理している表です。

この中から、8月生まれの人が何名いるのかを算出している表です。

なお、8月生まれと入力されている、D1には、ユーザー定義の書式を設定してあります。
 
これは、SUMPRODUCT関数で使用するためです。

さて、どうのようにしたら、8月の誕生日の人を算出したらいいのでしょうか?

考え方としては、誕生月を算出して、その件数を数えれば、8月の誕生日の人が何名いるのかを算出することができます。

もし、SUMPRODUCT関数をつかわないとしたら、2段階方式で算出することになります。

たとえば、MONTH関数をつかって、誕生月を抽出させます。
 
C2には、
=MONTH(B2)
というMONTH関数をつかって、誕生日から誕生月を算出させています。

C6までオートフィルで数式をコピーしています。

そして、D2の数式は、
=COUNTIF(C2:C6,D1)
条件を指定して件数を求めるには、COUNTIF関数をつかいます。
 
範囲には、C2:C6
検索条件には、D1
D1の数値を変えることで、別の月の件数を容易に算出することができます。

ここで使用するために、D1には、表示形式を設定したわけです。

8月生まれの人を結果的には算出することができたので、目的は達成することができたわけですが、数式を2つ作らないといけないわけですね。

今回は、算出できる列があったので、よかったのですが、資料によっては、難しい場合もあります。

ところが、SUMPRODUCT関数をつかうと、一発で算出することができます。

SUMPRODUCT関数をつかって作成した数式は、
=SUMPRODUCT((MONTH(B2:B6)=D1)*1)
です。
 
SUMPRODUCT関数の引数は、配列という形で、範囲を設定していきます。

パッと見た目、「?」になってしまうので、この数式について、解説していきます。
最初の
MONTH(B2:B6)=D1
ですが、この数式だけの結果を算出してみます。
 
C2には、
=MONTH(B2:B6)=D1
と設定しております。

範囲に、絶対参照が必要なのではと思われるかもしれませんが、Office365の「Office Insider」版には、『スピル』という機能が加わったことにより、絶対参照は不要です。

なお、通常のExcelでは、絶対参照が必要になりますので、数式は、
MONTH($B$2:$B$6)=D1
と設定します。
 
条件と合致しているならば、「TRUE」を算出し、合致していないと「FALSE」を算出しますが、このままでは、結局件数を数えなければなりません。

そこで、「×1」をこの式に追加します。
 
「TRUE」や「FALSE」に「×1」すると数値に変更することができます。

ちなみに、Excelでは、TRUEを1。FALSEを0と設定されています。

ここで、算出された結果の合計値が、「2」と算出される仕組みなのが、SUMPRODUCT関数です。