Excel関数 逆引き集 | 時間の差を計算 → MOD

Excel
スポンサーリンク

概要

勤務開始・終了など「時間差」を計算するとき、終了が翌日に跨ぐと単純な引き算ではマイナスになります。ここで使えるのが MOD。Excelでは1日=1、1時間=1/24という連続値なので、「差を1で割った余り」を取れば、0:00を跨いでも常に正の“経過時間”として扱えます。定番形は「=MOD(終了−開始,1)」。


基本の考え方

時間は“日付の一部”。たとえば 8:00 は 0.3333…(=8/24)、23:00 は 0.9583… のように表されます。終了−開始が負になるケース(例:22:00→翌1:30)は、1日を法(modulus)とする余りにすれば正の経過時間に戻せます。つまり「=MOD(終了−開始,1)」で“24時間を1周”として丸める、が核心です。


基本の使い方

跨ぎなしの時間差(同日内)

=終了時刻 - 開始時刻

例:

=B2 - A2

表示形式を「hh:mm」または「[h]:mm」にすると見やすくなります。

跨ぎありでも正の差にする(翌日跨ぎ対応)

=MOD(終了時刻 - 開始時刻, 1)

例:

=MOD(B2 - A2, 1)

B2が翌1:30、A2が22:00でも「03:30」が返ります。

純粋な“分”や“時間”の数値で欲しい

分:

=MOD(B2 - A2, 1) * 24 * 60

時間(小数):

=MOD(B2 - A2, 1) * 24

具体例

勤務時間(開始A2、終了B2)を「hh:mm」で表示

=TEXT(MOD(B2 - A2, 1), "hh:mm")

人に見せる帳票なら、TEXTで整形するとズレなく読めます。

残業時間(所定終了C2→実終了B2)

=MOD(B2 - C2, 1)

C2が18:00、B2が翌0:30なら「06:30」。

休憩を差し引いた実働時間

=MOD(B2 - A2, 1) - 休憩時間

例:休憩D2(分単位)なら

=MOD(B2 - A2, 1) - (D2/1440)

合計時間を“24時間超”でも正しく合算・表示

総和(E2:E50が時間差):

=SUM(E2:E50)

表示形式は「[h]:mm」にすると 26:45 のように24超の時間も崩れません。


応用テンプレート

深夜勤務の“日跨ぎ”フラグ

=(B2 < A2)

TRUEなら終了が翌日。監査や注意喚起に使えます。

シフト終了が予定より遅れた“超過分”(負も許容)

=(B2 - A2) - (予定終了 - 予定開始)

跨ぎが混在するなら両差をMODで正規化して比較します。

=MOD(B2 - A2,1) - MOD(予定終了 - 予定開始,1)

到着予定と実到着の“遅延分(分)”を常に正で取得

=MOD(実到着 - 予定到着, 1) * 24 * 60

時刻から“秒”までの差

=MOD(B2 - A2, 1) * 24 * 3600

秒で扱えば丸め誤差の確認にも便利。


よくあるつまずきと対策

表示形式を整える

差が“0.1458”のような数値に見えるのは正常です。見やすくするには表示形式を「hh:mm」や「[h]:mm」にしてください。合計・累計には「[h]:mm」が鉄則です。

日付を含むセルでもOK

「2025/12/17 22:00」→「2025/12/18 01:30」のような“日付+時刻”でも、MOD(B−A,1)は正しく機能します。

文字列時刻を避ける

“22:00” を文字列で持つと計算できない場合があります。正しい時刻型で入力するか、TIME(時,分,秒)で生成しましょう。

休憩や丸め(5分単位など)

分単位で欲しい場合は“分換算”後に丸めます。 5分単位に丸め(切り上げ):

=CEILING(MOD(B2 - A2,1)*1440, 5)/1440

切り捨ては FLOOR、四捨五入は MROUND。


例題

問題1: 開始A2=9:15、終了B2=17:45 の時間差をC2に「hh:mm」で表示してください。

=TEXT(B2 - A2, "hh:mm")

問題2: 開始A2=22:00、終了B2=翌1:30 の時間差をC2に正しく表示してください(跨ぎ対応)。

=TEXT(MOD(B2 - A2, 1), "hh:mm")

問題3: 開始A2=21:50、終了B2=翌6:10、休憩D2=45分 の実働時間をE2に「[h]:mm」で表示してください。

=TEXT(MOD(B2 - A2,1) - (D2/1440), "[h]:mm")

問題4: 実働時間一覧E2:E100の“総時間”をF2に表示し、24時間超でも崩れないようにしてください。

合計:

=SUM(E2:E100)

表示形式: 「[h]:mm」を適用。

問題5: 予定開始G2=18:00、予定終了H2=23:00、実開始I2=19:10、実終了J2=翌0:40 の“超過分”をK2に「分」単位で表示してください。

=MOD(J2 - I2,1)*1440 - MOD(H2 - G2,1)*1440

まとめ

時間差の要点は「翌日跨ぎでも常に正で扱う」ことで、その最短解が「=MOD(終了−開始,1)」。表示は「hh:mm/[h]:mm」、分・時間へは24や1440を掛ける、休憩や丸めは加減算+CEILING/MROUND——この組み合わせを押さえれば、勤務集計・遅延分析・シフト管理が安定して回ります。

タイトルとURLをコピーしました