FILTER関数の日付型抽出
ExcelのFILTER関数は、特定の条件に基づいてデータを抽出する強力なツールです。ただ、日付データの抽出は、特に注意が必要な場面の一つとなります。この記事では、FILTER関数を使って日付型のデータを正確に抽出する方法について解説します。
日付型フィールドがあるサンプルデータセットの確認
FILTER関数で日付型のデータを抽出する際には、DATE関数やDATEVALUE関数を使用して日付を正しい形式に変換することが効果的です。
例えば、以下のようなデータセットがあるとします。このデータセットから、特定の日付(例:2020年3月12日)のデータを抽出する手順を次に紹介します。
開催日 | 開始時間 | 会場 | 天気 | 来客数 |
---|---|---|---|---|
2020/05/11 | 15:45 | 品川 | 晴れ | 1100 |
2020/04/07 | 15:45 | 上野 | 晴れ | 1080 |
2020/03/21 | 11:15 | 上野 | 曇り | 1000 |
2020/03/21 | 11:15 | 上野 | 晴れ | 980 |
2020/03/21 | 15:45 | 上野 | 晴れ | 970 |
2020/05/11 | 13:30 | 町田 | 曇り | 970 |
2020/03/12 | 11:15 | 品川 | 曇り | 930 |
2020/05/11 | 11:15 | 上野 | 曇り | 930 |
2020/05/01 | 15:45 | 町田 | 曇り | 920 |
2020/04/29 | 13:30 | 上野 | 晴れ | 840 |
2020/05/01 | 13:30 | 品川 | 晴れ | 840 |
2020/04/29 | 11:15 | 町田 | 曇り | 840 |
2020/05/01 | 11:15 | 町田 | 雨 | 830 |
2020/05/11 | 13:30 | 品川 | 雨 | 790 |
2020/03/12 | 13:30 | 品川 | 雨 | 760 |
2020/05/01 | 15:45 | 上野 | 晴れ | 760 |
2020/03/21 | 11:15 | 町田 | 雨 | 760 |
2020/05/15 | 11:15 | 町田 | 曇り | 750 |
2020/03/12 | 13:30 | 上野 | 曇り | 730 |
2020/04/29 | 11:15 | 品川 | 曇り | 730 |
2020/05/11 | 11:15 | 上野 | 晴れ | 730 |
2020/05/01 | 11:15 | 品川 | 晴れ | 720 |
2020/05/11 | 13:30 | 上野 | 雨 | 710 |
2020/05/11 | 13:30 | 町田 | 雨 | 610 |
2020/03/21 | 11:15 | 品川 | 曇り | 590 |
2020/05/15 | 11:15 | 町田 | 雨 | 560 |
FILTER関数の日付型抽出の設定パターン1 (定数)
DATE関数を使用した例
このデータセットから、特定の日付(例:2020年3月12日)のデータを抽出するには、DATE関数と組み合わせて以下の計算式を使用します。
DATE関数は「DATE(年,月,日)」の書式を用い、1つの日付データを作成可能にします。
=FILTER(A2:E27, A2:A27=DATE(2020,3,12))
なお日付は「43902」のように整数で、時刻は「0.46875」のように小数で表示されます。これは「表示形式」で調整してください。
DATEVALUE関数を使用した例
もしくはDATEVALUE関数と組み合わせて以下の計算式を使用します。DATEVALUE関数は「DATEVALUE(日付文字列)」の書式を用い、日付文字列を日付型データとして適切に認識させます。
=FILTER(A2:E27, A2:A27=DATEVALUE("2020/3/12"))
失敗例
また、以下は失敗例です。FILTER関数ではDATEVALUE関数で囲まない日付型文字列は認識されません。
=FILTER(A2:E27, A2:A27="2020/3/12")
FILTER関数の日付型抽出の設定パターン2 (セル参照)
日付セルを参照するケース
セル参照を使う場合には直接指定ができます。たとえばセルG2に「2020/3/12」という日付データが入力されているならば、以下のような指定ができます。非常に簡単な設定で完結します。
=FILTER(A2:E27,A2:A27=G2)
別々の場所に入力されている年・月・日をDATE関数を用いて参照するケース
年・月・日が別々の場所に入力されていて、それらを参照するならばDATE関数を用いて適切に結合させる必要があります。たとえば「年情報がセルG2、月情報がセルG4、日情報がセルG6」に入力されている場合に、対象のレコードを抽出する式は以下の通りになります。
=FILTER(A2:E27,A2:A27=DATE(G2,G4,G6))
以降・以前の設定
日付抽出においてその日だけを対象にするには前述のように「含む」の比較演算子に「=」を使いました。「以降/以前」の抽出も可能です。その場合は「>=
」「<=
」を比較演算子にします。その日を含めない場合は「>
」「<
」を使います。
- 以降…>=
- 以前…<=
- より後…>
- より前…<
例えば「2020/5/11以降の抽出」ならば以下のいずれかの計算式となります。
=FILTER(A2:E27,A2:A27>=DATE(2020,5,11))
=FILTER(A2:E27,A2:A27>=DATEVALUE("2020/5/11"))
注意点
日付データを抽出する際には、日付列が正しく日付形式でフォーマットされていることを確認してください。セルのフォーマット(表示形式)が「標準」や「文字列」になっている場合、それを「日付」に変更する必要があります。
FILTER関数を使った日付型データの抽出は、適切な方法を理解することで簡単に行えます。日付データを扱う際には、これらのポイントを念頭に置いて作業を進めてください。
次の記事:FILTER関数と日付の期間指定
次の記事ではFILTER関数で「○以降から×以前までのデータを抽出する」という作業を実現する方法を解説します。設定する条件が複数となります。
コメント