11/19/2021

Excel。条件付き書式の条件で日付を直接入力で設定すると、書式が反映されない【Date】

Excel。条件付き書式の条件で日付を直接入力で設定すると、書式が反映されない

<条件付き書式+DATE関数>

Excelの条件付き書式で、日付を条件で使用する時には、少し注意する必要があります。

セル参照をつかわないで、条件を直接入力して設定すると、設定した書式が反映されないで悩むことがあります。


次の表を使って説明していきます。


今回は、2021年10月1日より前の日のデータならば、行全体を塗りつぶす書式を設定するとします。


事前の確認として、行全体が対象となるので、複合参照を使う必要があります。


このことから、数式を使った設定をする必要があります。


また、データをみると、空白セルがあることから、AND関数をつかった数式を設定する必要があります。


A2:C11を範囲選択します。


ホームタブの条件付き書式の「新しいルール」をクリックします。

新しい書式ルールダイアログボックスが表示されます。


ルールの種類を「数式を使用して、書式設定するセルを決定」を選択して、次の数式を満たす場合に値を書式設定のボックスに数式を設定していきます。

=and($C2<>"",$C2<2021/10/1)

あとは、書式ボタンをクリックして、塗りつぶす色を選択します。


OKボタンをクリックしてみると、残念ながら、反映されていません。


数式のどこかに、原因があるわけです。

複数の条件が合致する場合に書式を反映させたいので、AND関数には問題はありません。


C2を複合参照で設定しているには、行全体を塗りつぶすためなので、問題はありません。


原因は、「日付」なのです。ここが、直接数式で設定する場合のポイントです。


数式の日付をみてみると、

$C2<2021/10/1

となっています。


一見問題ないように見えますね。

ここで「”(ダブルコーテーション)」で囲っていないからだと思うかもしれませんが、

$C2<”2021/10/1”

としたところで、状況に変化はありません。


なぜならば、今回の原因が、「シリアル値」にあるからです。

「”(ダブルコーテーション)」をつければ、文字になってしまいます。


どのようにしたら、シリアル値にすることができるのか?

わざわざ、条件の日付のシリアル値を調べて、その数値を入力するというのは、面倒です。


そこで、DATE関数をつかいます。


条件を次のように変更してみます。

=AND($C2<>"",$C2<date(2021,10,1))

実行して確認してみましょう。


条件に合致するデータの行全体を塗りつぶすことができました。


条件で日付をつかうことは、アチラコチラで発生しますが、その時に、うまくリアクションしないときには、シリアル値のことを思い浮かべることができるといいかもしれませんね。