4/10/2017

Excel。時間に条件付き書式を設定したけど、うまくいきません!【Conditional formatting】

Excel。時間に条件付き書式を設定したけど、うまくいきません!

<条件付き書式>


次の表がありまして、

出発時間が17時以降のものがわかりやすいように、
行単位で塗りつぶしを設定したいので、条件付き書式を使ったら、
便利かなと思って設定したのですが、
ちゃんと塗りつぶしが17時以降の行に反映されないのです。

どうしたらいいの?というご質問をいただきました。

条件付き書式は、
確かに汎用性が必要な時などには、便利なのですが、
設定が結構微妙な時があったりするので、
上手くいかないケースというのがあるんですね。

今回のケースもあることに気を付けないと、
反映してくれないというトラブルが発生しやすい表なので、
今回のように時間を条件にした、条件付き書式をご紹介していきます。

【文字になってしまう】

まずは、よくやってしまう方法で設定した場合、
反映されないことを確認しておきましょう。

A2:C8を範囲選択して、ホームタブの条件付き書式をクリックします。

今回は、行単位で塗りつぶしを設定しますので、新しいルールを使っていきます。

新しいルールをクリックすると、
『新しい書式ルール』ダイアログボックスが表示されますので、
『数式を使用して、書式設定するセルを決定』をクリックします。

次の数式を満たす場合に値を書式設定のボックスに、
=$C2>=17:00
と入力して、塗りつぶしの書式を設定します。

そして、OKボタンをクリックしてみると。

エラーが表示されてしまいました。
要するに、””(ダブルコーテーション)で囲ってくださいということなので、
ボックスの式を次のように修正しました。
=$C2>="17:00"
そして、OKボタンをクリックしてみると。

アレレ?全く反映されていません。色が変わっていない?

これが今回のご質問な訳ですね。うまく反映されないので困っている。

なぜ、反映されないのかというと、
先程、時間に””(ダブルコーテーション)をつけましたよね。

これによって、"17:00"が、文字になってしまったわけです。

つまり、"17:00"という文字だったら塗りつぶしますよ
という条件になってしまっているのです。

C列の表示形式を『標準』に変更してみるとわかりますが、

時間はそもそも、シリアル値。

すなわち、数値な訳ですから、
"17:00"という文字では条件が合致しませんので、
条件付き書式が、動いてないように見えたわけですね。

【×1すればシリアル値】

では、どうやったらいいのでしょうか?

17:00としたくても、エラーが出てしまう。

そこで、次のように数式を変更してみましょう。
=$C2>="17:00"*1

修正後OKボタンをクリックしてみると、なんと反映されましたね。

数式に『*1』をつけただけですが、
実は、こうすることによって、シリアル値に変換することが出来るのです。

時刻を数式で直接指定する・入力する時は、
シリアル値に変換してあげるということを覚えておくと、
今回のようなケースを回避することができますよ。