Excelの落とし穴

時刻の計算に誤差

Excelの時間差の誤差

小数の値を持つ、シリアル値でも同様に誤差が生じます。
小数のシリアル値、それは時刻です。
したがって、時刻の計算をする時に誤差が発生することを認識しておく必要があります。
場合によっては、その1秒に満たない誤差が、時分の表示に影響を及ぼすこともあります。
例えば、所要時間(終了時刻ー開始時刻)を二つの時刻から計算で求めたします。
        時間1=  9:00:00 - 7:00:00 = 2:00:00(0.0833333333333333(シリアル値))
        時間2=10:00:00 - 8:00:00 = 2:00:00(0.0833333333333334(シリアル値))
         注:2時間をシリアル値に変換すると、「0.0833333333333333」いう値になります。
Excelの画面上の 表示は、同じ「2:00:00」になります。
視覚上は、なんら問題は感じられません。

しかし、時間1と時間2を比較すると、違う値だと判定されます。
また、「2時間以内という条件」の場合、
 時間1はTrue(該当する)
 時間2はFalse(該当しない)
で、時間2は対象外になってしまいます。
これは、大きな落とし穴と言えます。

時刻の計算をする際に、誤差が生じることがある

開始時刻と終了時刻の時間差について
    以下の様な、時間差を比較した表があります。
  Excelの時刻計算の誤差
        開始・終了の時間は全て、「0:18:20」で差はないように見えます。
        しかし、時間差シリアル値の列を見てください。
        時間差シリアル値の間にはそれぞれ誤差が生じます。
        時間を表示するだけなら、問題はありません。
        しかし、同時間であるかを判定する際には、この誤差は見逃すことができません。

ページトップへ

<正確に比較したい場合の対応策>

二つの時間、STとETの時間差を求める場合を例に説明します。
    ST:開始時刻
    ET:終了時刻とします。
正確な時間差を求める場合は
 正確な時間=TIME(HOUR(ET - ST),MINUTE(ET - ST),SECOND(ET - ST))
の様に、誤差をなくす手間(正規化)を加えてください。

後でまとめて正規化しようとすると、誤差が大きくなり表面に現れてしまう可能性もあります。
特に、正規化する前の値に乗算すると誤差はより大きなものになってしまいます。
100%の対策方法とは言えません。
面倒でもこまめに正規化し、大きな失敗をしない様にしてください。

ページトップへ