【Microsoft Excel】SUMPRODUCTによる条件付き集計
よく知られてるところだが
個人的にいつか忘れたときのための備忘録とする
(SEメモは全部そうなんだが)
EXCELの関数SUMPRODUCTは本来配列の積を求める役割の関数だが
配列を0と1だけにして残りを本来の配列に指定すると
条件付きの総和を求めることができる。
たとえば元表が以下の通りであったとする
このとき、
=SUMPRODUCT(((B2:B5)=0)*1, C2:C5)
でFLG(B列)が"0"のデータのみを対象にYEN(C列)を集計してこれる
この条件はほかにも使える。たとえば
=SUMPRODUCT(((B2:B5)=0)*1, *1*1, C2:C5)
ならDATE(D列)が2014/12/31以前のデータを対象にYEN(C列)を集計する
=SUMPRODUCT(((B2:B5)=0)*1, ((E2:E5)="田中")*1, C2:C
ならNAME(E列)が"田中"のデータを対象にYEN(C列)を集計する
フィルタとかかけていちいち選択範囲絞ったうえでSUMする等が面倒くさい場合に使う。
*1:D2:D5)<=DATE(2014,12,31