運送業のドライバーの場合、「始業から24時間」を1日としてカウントし、翌日の始業時間が前日より早まった場合、その早まった分(時差分)は「前日の24時間以内」に食い込むことになります。その結果、食い込んだ時間分が「前日の拘束時間」として上乗せされるというルールです。
添付画像をご覧ください。
A列は日付です。B列に出勤時刻、C列に退勤時刻、D列に拘束時間が入力されているとします。
この状態で翌日の出勤時刻を加味してE列の「修正後拘束時間」を求める数式を考えることになります。
前出のルール通りに言えば、
【E2の修正後拘束時間は、A2の日付のB2の出勤時刻から24時間後の時刻より、A3の日付のB3の時刻の方が早かったら、早かった分がA2の日付のD2の拘束時間に加算される】となります。
Excelの時間計算においては24時間は1と表されるので、
「E2はA2+B2+1\u0026gt;A3+B3だったら、D2+(A2+B2+1)-(A3+B3)とし、そうでなかったらD2とする」
となり、
「A2+B2+1\u0026gt;A3+B3」は変形すると「(A2+B2+1)-(A3+B3)\u0026gt;0」
となります。
さらに、A3はA2の翌日ですからA3=A2+1ですので、
「(A2+B2+1)-(A2+1+B3)\u0026gt;0」
となり、結果
「B2-B3\u0026gt;0」
となります。
同様に
「(A2+B2+1)-(A3+B3)」は「A2+B2+1-(A2+1+B3)」
となり、結果
「B2-B3」
となります。
つまり、「B2-B3\u0026gt;0」ときのみD2に「B2-B3」を加算することになり、B2-B3がマイナスのときは加算しない(言い換えれば0を加算)となるので、数式にすると
=D2+MAX(B2-B3,0)・・・①
となります。
但し、画像の4月3日のように、出勤なしの場合、B列が空欄になり、これが0:00出勤と誤認されると、ご質問者のお悩みのように「修正後拘束時間」が正しく算出されません。
そこで、以下の2点を数式に反映する必要があります。
(1)B列が空白の場合、他の条件に拘らず、「修正後拘束時間」を「空白」とする
(2)B列が空白の場合、その前日の「拘束時間」をそのまま「修正後拘束時間」とする
上記を考慮して①を修正すると
E2: =IF(B2=\u0026quot;\u0026quot;,\u0026quot;\u0026quot;,D2+MAX(B2-B3,0)*(B3\u0026lt;\u0026gt;\u0026quot;\u0026quot;))・・・①'
となり、これを下方向へコピーすればよいということになります。