Excel。条件付き書式で日付をつかった条件が、なぜか反映されません
<条件付き書式+DATE関数>
販売金額を管理している表があります。
販売日が2025/9/10以降のデータとわかりやすいように、行全体を塗りつぶしたいと考えました。
2025/9/10以降という条件と、塗りつぶしをしたいということから「条件付き書式」をつかいます。
あとは、2025/9/10以降という条件式をつくればいいわけです。
A2:B13を範囲選択して、ホームタブの条件付き書式にある「新しいルール」をクリックします。
新しい書式ルールダイアログボックスが表示されます。
「数式を使用して、書式設定するセルを決定」を選択して、条件式を設定します。
=$A2>=2025/9/10
A2を$A2とすることで、行全体を塗りつぶし対象とすることができます。
書式ボタンをクリックして、塗りつぶしたい色を設定したら、OKボタンをクリックしてみます。
すべての行が塗りつぶされてしまいました。
なんでこうなってしまったんでしょうか。
原因を探る必要があります。D列に
=A2>=2025/9/1
という条件式を設定してオートフィルで数式をコピーしてみると、すべてTRUEと判定されています。
TRUEなので、条件を満たしているといっています。
では、数式の検証をつかって、さらに原因を探ってみましょう。
D2をクリックして、数式タブにある、数式の検証をクリックします。
数式の計算ダイアログボックスが表示されます。
検証ボタンを何度かクリックします。
すると、A2が45901というシリアル値で表示されています。
問題なのは、2025/9/1。
なんとシリアル値になるのではなく「/」があるので、除算しています。
こちら希望としては、日付であってほしかったのですが、単純に数値扱いになっていることがわかりました。
45901>=225を比べたら当然、すべてがTRUEになってしまうので、データすべてが塗りつぶされてしまったというわけです。
D2の数式を次のように修正してみました。
=A2>="2025/9/1"
と日付の前後に「”(ダブルコーテーション)」で囲んだところ、今度はすべてFALSEになってしまいました。
「”(ダブルコーテーション)」で囲むと、文字になってしまいます。
数値と文字を比べれば、文字のほうが大きいので、FALSEと表示されるのも納得がいきますが、これもダメということです。
ExcelにはAccessのような「#」で囲むと日付になるというものがありません。
そのため、日付であると認識させるには、DATE関数を使う必要があります。
D2の数式をDATE関数で修正します。
=A2>=DATE(2025,9,10)
オートフィルで数式をコピーすると、10日以降がTRUEになったことが確認できました。
あとは、条件付き書式を改めて、設定しなおしましょう。
条件式は、
=$A2>=DATE(2025,9,10)
書式も設定したら確認してみましょう。
このように、2025/9/10以降のデータ全体を塗りつぶすことができました。
日付を直接条件として使う場合には、日付とExcelがわかるようにしてあげる必要があります。