『日をまたぐ場合の勤務時間計算について』(紅茶好き)
お世話になります。
弊社業務は日勤と夜勤があり、特殊な業務内容です。
日勤は9時間拘束、夜勤は7時間拘束で、休憩時間は拘束時間内に含めます。
それぞれ拘束時間を超えた場合残業扱いとなる為、残業時間を算出する表を
作成し使用しております。
仕様は
A列に日勤か夜勤か選択
B列に勤務時間(関数、下部に内容表示有)
C列に現場稼働数/日
D列に日付
E列に勤務開始時間
F列に勤務終了時間
G列に残業時間(関数、下部に内容表示有)
となっております。(実際はもっと色々入った表ですが割愛します)
問題は夜勤で21:30開始5:00終了で0.5時間残業になる場合のみ、残業の
関数が正しく働かないことです。
勤務時間は、例えば23列目を参考にした場合
=IF(E23="","",IF(F23<E23,(F23+1-E23)*24,(F23-E23)*24))
残業時間は、
=IFS(ISBLANK(A23),"",AND(A23="日",B23-9<0.5),"",AND(A23="日",B23-9>=0.5),B23-9,AND(A23="日研修",B23-9<0.5),"",AND(A23="日研修",B23-9>=0.5),B23-9,AND(A23="夜",B23-7<0.5),"",AND(A23="夜",B23-7>=0.5),B23-7,AND(A23="夜研修",B23-7<0.5),"",AND(A23="夜研修",B23-7>=0.5),B23-7,TRUE,"")
※研修というのは研修期間は基本給が変わるものの為なのでここでは気にしないで下さい。
で関数を入れており、通常であれば0.5の表示がされるはずです。
試しに
20:30〜4:00
21:00〜4:30
22:00〜5:30
22:30〜6:00
を入力して確認しましたが、全て問題なく0.5の表示がされます。
素人の私がなんとか作成した表で、そもそもこの関数の組み方がよくないのは重々承知しております。
表の中に基本給/日の単価や残業単価も含まれており、最終的には1人のスタッフの1か月の勤務内容と給与が全て表示されるEXCELです。勉強不足で申し訳ありませんが、難しいことはできません。できれば簡単な内容で解決できれば幸いです。
よろしくお願い申し上げます。
< 使用 Excel:Microsoft365、使用 OS:Windows11 >
G2: =IF(A2="","",MAX(0,IF(A2="日勤",(IF(F2<E2,F2+1,F2)-E2)*24-9,(IF(F2<E2,F2+1,F2)-E2)*24-7)))
(稚拙) 2026/06/17(水) 12:18:38
早速のご回答ありがとうございます。
MAX関数がよく理解できておらず申し訳ないのですが、残業が0の場合は0表記ではなく空白を希望しております。
ご教示いただいた関数を参考に下記の通り入力してみたところ、悩んでいた21:30〜5:00の残業表示の問題については0.5で表示され解決致しました。
但し、残業が発生せず拘束時間ぴったりのケース→例えば日勤8:00〜17:00(9時間)で入力したところ、残業が2E-15と表示されてしまいます。夜勤については、21:00〜4:00(7時間)で入力したところ同様に2E-15と表示されます。拘束時間ぴったりではないケース→例えば日勤8:00〜16:00(8時間)、夜勤21:30〜4:00(6.5時間)は問題なく残業0で表示されます。
私の式が間違っていたら申し訳ないのですが、0表記ではなく空白にする方法と、この2E-15を修正する方法がありましたら再度ご教示いただければ幸いです。
入力式(23行目を使用)※便宜上23行目から入力が始まるため
=IF(ISBLANK(A23),"",MAX(0,(IFS(A23="日",(IF(F23<E23,F23+1,F23)-E23)*24-9,A23="日研修",(IF(F23<E23,F23+1,F23)-E23)*24-9,A23="夜",(IF(F23<E23,F23+1,F23)-E23)*24-7,A23="夜研修",(IF(F23<E23,F23+1,F23)-E23)*24-7,TRUE,""))))
(紅茶好き) 2026/06/17(水) 13:38:57
(稚拙) 2026/06/17(水) 14:17:32
LETもMAXも理解しきれぬままで自分が情けないですが、下記の通り入力し全て解決致しました!!
大変助かりました。ご丁寧にありがとうございました。
=IF(A23="","",LET(o,MAX(0,IF(OR(A23="日",A23="日研修"),(IF(F23<E23,F23+1,F23)-E23)*24-9,(IF(F23<E23,F23+1,F23)-E23)*24-7)),IF(ROUND(o,10)=0,"",ROUND(o,2))))
日、日研修→9時間拘束
夜、夜研修→7時間拘束
基本10分以上の勤務は30分に丸めますが、時々イレギュラーがある為小数点第2位までの表記にしました。
(紅茶好き) 2026/06/17(水) 15:38:09
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.