GoogleスプレッドシートのFILTER関数で、日付を条件として抽出する方法についてです。
- FILTER関数の条件にDATEVALUE関数を用いることで、日付を条件とした抽出ができます。
- DATEVAULE関数の代わりに「*1」で済ませる方法もあります。
- 第3引数以降(AND条件)を用いて、一定期間内の日付を抽出することができます。
手順
B,C列に氏名と生年月日のデータが記録されています。
そこでE3セルにFILTER関数を使った式を入力し、生年月日が2018/7/1以降である者のデータを抽出しています。
E3セル
=FILTER(B3:C8,C3:C8>=DATEVALUE("2018/7/1"))
第2引数を単純に「C3:C8>=2018/7/1」とやってしまうと「2018/7/1」の部分が単なる割り算(≒288.3)とみなされてしまい、うまくいきません。
そこで「2018/7/1」の部分を「"」とDATEVALUE関数で囲み「DATEVALUE("2018/7/1")」とすることでシリアル値に変換し、抽出条件としています。
「"」で囲むのを忘れないよう注意が必要です。
なお、DATEVALUE関数の代わりに「*1」とすることで済ませることもできます。
E3セル
=FILTER(B3:C8,C3:C8>="2018/7/1"*1)
ここでも「"」で囲むのを忘れないよう注意が必要です(DATEVALUE関数の場合と異なり、忘れてもエラーになりません)。
なお、基準となる日付がセルに入力されている場合は、関数等を併用することなくそのまま比較に用いることができます。
TODAY関数と比較する場合も同様です。例えば「今日以降」という場合の条件(第2引数)は「~>=TODAY()」で済みます。
また、スプレッドシートのFILTER関数では、第3引数以降にAND条件を追加することができます。
ここではこれを利用して、生年月日が2018/7/1から2018/9/30までの期間に含まれる者のデータを抽出しています。
E3セル
=FILTER(B3:C8,C3:C8>="2018/7/1"*1,C3:C8<="2018/9/30"*1)