【Excel】時刻の引き算で「1分」の誤差が出る!端数処理の計算補正術

【Excel】時刻の引き算で「1分」の誤差が出る!端数処理の計算補正術
🛡️ 超解決
  • TEXT関数を使用して時刻を「hh:mm」形式の文字列として再認識させる:計算式を「=TEXT(終了時刻-開始時刻,”h:mm”)*1」と記述することで、内部的な微細な浮動小数点誤差をリセットし、正しい時刻データに補正します。
  • MROUND関数で「1分単位」の近似値に丸める処理を加える:「=MROUND(計算式,”0:01″)」を使用し、Excel内部で発生している1秒未満の余計な端数を強制的に最も近い1分単位へ収束させ、表示のズレを解消します。
  • 計算結果に「1秒」に満たない微小な値を加算して演算誤差を相殺する:内部的な数値がわずかに不足して「59秒」と判定されるのを防ぐため、「+”0:00:05″」などの微小時間を足してから切り捨て処理(FLOOR等)を行い、意図通りの分数を算出します。
  • 1. Excelが時刻の計算で「1分」を失う技術的な背景

    Excelで勤務時間や作業時間を計算する際、「10:00 – 9:00」の結果が「1:00」のはずなのに、特定の条件下で「0:59」と表示されたり、計算結果が1分足りなくなったりすることがあります。これはExcelのバグではなく、コンピュータ特有の「浮動小数点誤差」という数値処理の限界が原因です。

    Excelは時刻を「シリアル値」という0から1までの小数で管理しています。1日は「1」、1時間は「1/24」、1分は「1/1440」です。しかし、「1/1440」という数値は2進数で表現すると無限小数になり、メモリに格納する際に末尾がわずかに切り捨てられます。この「目に見えない極小の不足」が積み重なると、Excelは「0.99999…分」を「0分」と切り捨てて判定してしまい、結果として1分の誤差が生じるのです。

    2. 手順①:TEXT関数による「正規化」で誤差を切り捨てる

    最も手軽で効果的なのが、TEXT関数を使って時刻を一度文字列の書式に当てはめ、再び数値に戻す方法です。これにより、目に見えない桁のゴミを掃除できます。

    1. 時刻の引き算を行うセルに次の数式を入力します。
    2. =TEXT(B2-A2, “h:mm”)*1
    3. 「*1」を加えることで、TEXT関数で文字列になった時刻を再びExcelが計算可能な「シリアル値」に変換します。

    この操作を通すと、内部で「0.0416666666666666」といった中途半端な数値になっていたシリアル値が、正確な1時間の値(0.0416666666666667)に丸められ、誤差が消滅します。

    3. 手順②:MROUND関数で「1分単位」に吸着させる

    計算結果を他の数式(給与計算など)に利用する場合、MROUND関数を使って「最も近い1分」に強制的に吸着させるのが安全です。

    1. 数式を =MROUND(B2-A2, “0:01”) と記述します。
    2. 第2引数の「”0:01″」は1分を意味します。
    3. これにより、内部的に「59秒.999…」となっていても、四捨五入の要領で「60秒(1分)」として処理されます。

    時間の切り捨て(FLOOR)や切り上げ(CEILING)を行う前段階でこのMROUNDを挟むことで、演算誤差による「予期せぬ切り捨て」を完璧に防ぐことが可能になります。

    4. 手順③:微小時間を足して「不足分」をカバーする

    FLOOR関数やINT関数で「分」を取り出す際に誤差が出る場合は、計算式に「ごくわずかな時間」をプラスする古典的な補正術が有効です。

    • 数式の例: =(B2-A2+”0:00:05″)*1440
    • 計算結果に5秒程度の微小な値を加算してから切り捨てを行うことで、内部的な数値不足による繰り下げを回避します。
    • この方法は、特に関数を使わずに数値をシリアル値から「分(整数)」に変換して管理したい実務現場で重宝されます。

    5. 誤差が発生しやすいケースと対策の比較

    発生シーン 原因の正体 推奨される対策
    勤務時間の集計 15分単位の切り捨て時に1分減る TEXT関数による正規化
    時刻の比較判定 同じ時刻なのにIF関数で不一致になる MROUND(“0:01”)で値を固定
    シリアル値の変換 24時間超の計算で端数が出る ROUND関数または秒の加算

    まとめ:時刻計算の「不整合」を論理的に封じ込める

    Excelにおける時刻の1分誤差は、画面に表示されている「見かけの数値」と、Excelが裏側で持っている「真の数値」の乖離によって生じます。この乖離を解消するためには、Excel任せにせず、数式の段階で「どの精度までを有効とするか」を明示的に指定してあげることが重要です。

    TEXT関数による書式の再適用や、MROUNDによる単位の固定は、一見すると回り道な処理に思えるかもしれません。しかし、これらの一手間を加えることで、給与計算のミスやデータの不整合といった、実務上の重大なリスクを確実に排除できます。コンピュータの数値処理の特性を理解し、誠実な数式設計を行うことで、信頼性の高いワークシートを構築してください。

    📊
    Excelトラブル完全解決データベース この記事以外にも、100項目以上のエラー解決策をまとめています。困った時の逆引きに活用してください。