Excelで時間の比較をIF関数を使用して行おうとしたら、正しく比較することができなくて困ったことはありませんか?
そんな場合どのようにすれば比較できるようになるか解説します。
IF関数で時間の比較ができない
以下の図のような表で、9時を超えたら遅刻と表示するようにIF関数を使用します。
その場合、
=IF(B3>"9:00","遅刻","")
という数式を入れてみたところ正しく比較されず遅刻と表示されません。
この数式で正しく比較できなかった原因は、数式の中で"9:00"と入力しているため、Excelは"9:00"を文字列と扱ってしまったため正しく計算することができませんでした。
これを正しく比較できるようにする方法は、2つありますのでそれぞれ紹介します。
「1」を掛けてシリアル値にする
Excelでは、時刻はシリアル値で計算を行っています。
先ほどの"9:00"をシリアル値にするには、1を掛けてあげればシリアル値になり正しく計算できるようになります。
具体的には先ほどの数式を、
=IF(B3>"9:00"*1,"遅刻","")
のように「"9:00"*1」と修正すれば正しく比較されるようになります。
数式を修正しオートフィルで反映したら正しく計算されるようになりました。
TIME関数を使用する
もう一つの方法として、TIME関数を使用する方法も紹介します。
注意点として、TIME関数は24時間以上の時間は使えないので注意
先ほどの数式をTIME関数を使用して以下のように修正しても計算することができます。
=IF(B3>TIME(9,0,0),"遅刻","")
TIME関数の書式は、
=TIME( 時 , 分 , 秒 )
になります。
数式を修正しオートフィルで反映したら正しく計算されるようになりました。
まとめ
Excelは時刻をシリアル値で計算しています。
セルに時刻を入力した場合は自動的にシリアル値になりますが、数式で時刻を入力する場合はシリアル値にしてあげる必要がありますのでご注意ください。