5/23/2021

Excel。条件付き書式を設定したら空白は除きたいのに反映しちゃうのでどうにかしたい【Exclude white space】

Excel。条件付き書式を設定したら空白は除きたいのに反映しちゃうのでどうにかしたい

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

条件付き書式を設定したら、まれに、意外なリアクションをすることがあります。

例えば、次のような表。


D1の日付よりも前日だった、該当データの行全体に塗りつぶしをする条件付き書式を設定してみます。


A1:B9まで範囲選択をして、ホームタブの条件付き書式から「新しいルール」をクリックすると、新しい書式ルールダイアログボックスが表示されます。


「数式を使用して、書式設定するセルを決定」を選択して、

=$B2<$D$1

と数式を設定して、塗りつぶしの書式を設定してみます。


この数式は、

D1の日付よりも、B列の日付が小さい。

すなわちD1より前の日付だったら。

という意味になりますから、空白は除外されているハズです。


ところが、OKボタンをクリックして確認してみると、空白のデータの行まで塗りつぶしされてしまっています。


B列には数式が設定されていて、その結果が空白になっているわけではありません。

完全な空白なのに、リアクションしてしまっています。


では、どうやったら、空白を除くことができるのでしょうか?


条件付き書式で設定する数式を修正することで対応するしか方法がありません。


A2:B9を範囲選択して、改めて、条件付き書式の「新しい書式ルール」ダイアログボックスを表示して、「数式を使用して、書式設定するセルを決定」を選択して、数式を設定します。


=and($B2<>"",$B2<$D$1)

あとは、塗りつぶしの書式を設定したらOKボタンをクリックしてみましょう。


今回は、空白データの行は対象から外れて、塗りつぶしされていないことが確認できましたね。


設定した数式を確認しておきましょう。


=and($B2<>"",$B2<$D$1)

どうやったら、空白を除くことができるかというのが、この数式のポイントです。


「<>」の比較演算子をつかうことで対応しました。


「空白じゃない」ものが塗りつぶしのターゲットになるわけですから、「空白だったら」という条件設定にしては、うまくいきません。

なので、今回は、「$B2<>""」とすることで、「B2が空白じゃない」という条件で判断させることができたわけです。


そして、そもそもの条件である、D1の日付以前ということですから、「$B2<$D$1」も合わせて条件にする必要があります。

AND関数をつかうことで、2つの条件を満たした場合。

すわなち「TRUE」になったら、セルを塗りつぶすという条件式を設定できたというわけです。


条件付き書式はとても便利で、様々な用途で使われていると思います。

数式をうまくつかうことで、色々対応することが可能になりますので、試してみるといいかもしれませんね。