6/28/2023

Excel。FILTER関数の条件を直接日付で設定する場合DATE関数が必要です。

Excel。FILTER関数の条件を直接日付で設定する場合DATE関数が必要です。

<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,"")