2014年2月8日土曜日

Google Spread Sheet で複数条件を指定した SUM をする


このエントリーをはてなブックマークに追加
SUMIFS という関数が「新しいスプレッドシート」なら使えるらしいのですが、手動で有効にする必要があり、過去に作ったものは古いバージョンのままなので、調べていました。

ARRAYFORMULA を使った方法がいくつか出てきましたが、ARRAYFORMULA の概念がよく理解できなかったので、とりあえず SUM と FILTER を使って

=SUM(FILTER(値, 条件, 条件, ...))

という方法を使うことに落ち着きました。
FILTER が条件に一致する部分だけを返し、それを SUM するという流れです。
条件はいくつでも追加できます。

例えば 'Form Responses' というシートの D の列に数字、B の列に日付が記載されていて、
1月分の数字のみを合計するといった場合は以下のように。

=SUM(FILTER('Form Responses'!D2:D, 'Form Responses'!B2:B >= DATE(2014, 1, 1), 'Form Responses'!B2:B < DATE(2014, 2, 1))

問題は、条件を満たす行がない場合は ERROR が表示される事。
使いこなせれば Google Spread Sheet は便利そうなので、少しずつ勉強していきたいものです。