1/26/2023

Excel。条件の数式で、時刻で使うと正しい結果を表示しないのでどうしたらいい。【Times of Day】

Excel。条件の数式で、時刻で使うと正しい結果を表示しないのでどうしたらいい。

<TIMEVALUE関数>

時刻や時間がある帳票で、判断などするために、例えばIF関数を使おうとした場合、TIMEVALUE関数をつかわないと、効率的に算出することができません。


C列の時間が、1時間以内ならば、「○」。

そうでなければ「×」と算出したいので、IF関数をつかいます。


D2に設定した数式は、

=IF(C2<=TIMEVALUE("1:00"),"○","×")


C2の時間が、1時間以内なのかを判断させるために、「TIMEVALUE("1:00")」とTIMEVALUE関数をつかっています。


TIMEVALUE関数は、文字で表示された時刻をシリアル値(日付時刻型)に変えることができる関数です。


なぜ、TIMEVALUE関数をつかうのかというと、「1:00」と設定すると、文字列として判断されてしまうので、思っているように判断してくれません。


例えば、

D2の数式を、

IF(C2<=1:00,"○","×")

というように、変更したらどうなるかというと、エラーが表示されて算出できません。


また、D2の数式を、

=IF(C2<="1:00","○","×")

と「”(ダブルコーテーション)」で囲ってみると、算出はされますが、不正解が算出されてしまいます。


C2が1時間をオーバーしているにも関わらず、判定結果が「○」ということで、1時間以内の判定になっています。


このように、IF関数などで、時刻や時間をつかった、数式を設定する場合には、「型」ということも含めて、考えないと上手くいかないかもしれません。