11/10/2021

Excel。条件付き書式で指定日以前を設定すると空白セルも対象になってしまう【Conditional formatting】

Excel。条件付き書式で指定日以前を設定すると空白セルも対象になってしまう

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

Excelには、簡単にできそうと思うと、そう簡単にできないものというのが結構あります。

たとえば、次のような場合。


提出日が、E1よりも前の日だったら、行全体を塗りつぶししています。


簡単なのではと思ったら、ちょっと厄介なんですね。


まずは、行全体を塗りつぶしたいわけなので、数式による条件を作る必要があります。

そして、次に問題になるのが、空白セルの問題です。


とりあえず、E1よりも前の日だったらという条件式をつくって、該当するセルが塗りつぶされるように設定していきます。


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


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


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

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

=$C2<$E$1

そして、書式ボタンで、塗りつぶしの色を設定します。


OKボタンをクリックします。


行全体を塗りつぶすことはできました。

セル参照を、「$C2」のように、列固定の複合参照で設定することで、行全体を塗りつぶすことができます。


しかし、よくみると、空白セルになっている行も塗りつぶしの対象になってしまっています。


この原因は、シリアル値にあります。


日付はシリアル値で管理されています。

そのため、指定の日付より前という条件だと、空白セルは「0(ゼロ)」として認識されるために、塗りつぶしの対象になってしまうのです。


そのため、「0(ゼロ)」を除く、すなわち、「空白セルではない」という条件を先程の条件式に追加する必要があります。


「次の数式を満たす場合に値を書式設定」のボックスに、

=AND($C2<$E$1,$C2<>"")

と今度は、AND関数をつかった数式を設定します。


まずは、結果を確認してみましょう。


空白セルの行は、対象外になったことが確認できます。


では、設定した数式を確認しておきます。

=AND($C2<$E$1,$C2<>"")

AND関数をつかうことで、複数条件が成立したもの以外は対象外にすることができます。


そして、「$C2<>""」を追加することで、空白セルを除くことができます。


このように、条件付き書式で日付を使うときには、ちょっと注意する必要がありますね。