プロが教える店舗&オフィスのセキュリティ対策術

OSバージョン:Windows7 Professional SP1
Excelバージョン:Excel2007(12.0.06665.5003) SP3 MSO(12.0.06665.5003)

スケジュール表を作成するにあたり、条件付き書式で自動的に該当時刻列のセルに色が付くようにしたいと思っています。

サンプルとして、
------------------------------------------
【セルに値を入力】
・A3:A62に22:00~22:59の時刻を1分刻みで入力(開始時刻列)
・B3:B62に22:01~23:00の時刻を1分刻みで入力(終了時刻列)
・C2:BK2に22:00~23:00の時刻を1分刻みで入力(数式参照用時刻行)

【条件付き書式を設定】
■数式を使用して、書式設定するセルを決定を選択し、以下の数式を設定
"=IF(C$2>=$A3,IF(C$2<$B3,TRUE,FALSE),FALSE)"
■書式:セルを赤で塗りつぶす
■適用先:"=$C$3:$BK$62"
------------------------------------------
と設定します。

全て開始~終了が1分なので、各行1セルずつ赤色がついて、綺麗に斜めの線が出来る想定なのですが、
6行目、8行目、10行目、12行目以降の行について、2セルずつ赤色がついてしまいます。

こうなってしまう事象原因がお分かりの方はいらっしゃいますでしょうか?

よろしくお願いします。

「条件付き書式でセルに色を付けた際のズレ」の質問画像

A 回答 (2件)

こんにちは!


おそらく「浮動小数誤差」の影響だと思います。

小数点以下の数値を5桁くらいで丸めてはどうでしょうか?

=IF(ROUND(C$2,5)>=ROUND($A3,5),IF(ROUND(C$2,5)<ROUND($B3,5),TRUE,FALSE),FALSE)

といった数式になると思います。

※ 検証していませんのでご希望通りに表示にならなかったごめんなさいね。m(_ _)m
    • good
    • 0
この回答へのお礼

ありがとうございます。
解決しました。

時刻をセルに入力する際、セルの右下を掴んでマウスのドラッグによる時刻列の生成を行なっていたのですが、おそらくこのドラッグ操作による加算の計算時に演算誤差が生じていたのですね。

ROUND関数を使わずとも、時刻入力で上記方法を取らなければ正常に書式されることもわかりました。

大変勉強になりました。
同様の事象で何度が悩まされた経験があるため、スッキリしました。

感謝します。

お礼日時:2012/11/21 17:07

浮動小数点誤差ですね。


その6行目などおかしいと思われる部分のA6のデータと、F2の値をコピーして、表示形式を設定していないセルに形式を選択して貼りつけ→値でOKして、それぞれ数式バーの数値を見比べれば微妙に違うのがわかると思います

条件付き書式の数式は以下の様にすればできます。

=IF(TEXT(C$2,"hh:mm")>=TEXT($A3,"hh:mm"),IF(TEXT(C$2,"hh:mm")<TEXT($B3,"hh:mm"),TRUE,FALSE),FALSE)
    • good
    • 0
この回答へのお礼

ありがとうございます。
なるほど、書式で桁数(という言い方が正しいかわかりませんが)を固定してしまうのですね。

関数でカバーするか、そもそも時刻入力方法を再検討するかですね。

勉強になりました。

お礼日時:2012/11/21 17:07

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています