Excel。FILTER関数の条件を直接日付で設定する場合DATE関数が必要です。
<FILTER+DATE関数>
オートフィルターをつかわなくても、関数で該当するデータを抽出できるFILTER関数ですが、日付を条件として抽出するには、DATE関数が必要になります。
A1:C6の表から、来訪日が2023/9/4のデータを別セルに抽出したいわけです。
そこで、FILTER関数を使用すると、手早く抽出することができます。
A9にFILTER関数をつかった数式は、
=FILTER(A2:C6,B2:B6=DATE(2023,9,4),"")
これで、抽出することができました。
なお、スピル機能によって、ゴーストが生まれるので、オートフィルを使わなくても、数式をコピーしてくれます。
なお、算出結果は「シリアル値」で表示されてしまうので、表示形式を使って日付に戻す必要があります。
さて、今回のポイントは、引数の条件に、直接、日付を入力する時にはDATE関数が必要ということです。
FILTER関数の2つ目の引数が、条件です。
条件に日付を使う時に、DATE関数が必要になります。
例えば、次のように、数式を変更してみましょう。
=FILTER(A2:C6,B2:B6="2023/9/4","")
日付にDATE関数を使わずに、「”(ダブルコーテーション)」で囲んでみると、表示してくれません。
「"2023/9/4"」とすると、日付ではなくて、文字として認識するのが原因のようです。
ちなみにExcel VBAやAccessの日付型で使用する「#」で囲んでみても、日付扱いにならず、「”(ダブルコーテーション)」と同じ空白の表示になってしまいます。
なお、セル番地に日付を入力しておけば、DATE関数を使用する必要はありません。
E1に日付を入力した場合のFILTER関数をつかった数式です。
=FILTER(A2:C6,B2:B6=E1,"")