• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセル日報 休日出勤 定時内も残業扱いにしたい)

エクセル日報 休日出勤 定時内も残業扱いにしたい

このQ&Aのポイント
  • 休日出勤をしても定時内の勤務時間も残業時間として計算したい場合、エクセル日報の作成方法について相談です。
  • 現在のエクセル日報では、通常出勤では問題ないが、休日出勤で早出出勤した場合、早出残業と普通残業の時間が重複してしまう問題が発生しています。
  • 具体的な例として、8:20に出社し、17:05に退社した場合、早出残業にも早出分が表示されてしまい、普通残業にも重複してしまいます。休日出勤時には早出残業を表示せず、普通残業も昼休憩を差し引いた時間で計算したいです。

質問者が選んだベストアンサー

  • ベストアンサー
  • don9don9
  • ベストアンサー率47% (299/624)
回答No.2

「退社」の次に「通常勤務」の列を追加し、以降1列ずつずれて C列…出社(時刻を入力) D列…退社(時刻を入力) E列…通常勤務 F列…昼休憩(分を入力) G列…夕方休憩(分を入力) H列…早出残業 I列…普通残業 J列…普通残業内休憩(分を入力) K列…深夜残業 L列…深夜残業内休憩(分を入力) M列…実働時間 P列…休日出勤の場合に"休日出勤"と入力 とします。 Q~T列を作業列とします。 Q9には =IF(COUNT(C9:D9)=2,MAX(MIN(IF(C9>D9,D9+1,D9),"8:50"*1)-MAX(C9,"5:00"*1),0),0) R9には =IF(COUNT(C9:D9)=2,MAX(MIN(IF(C9>D9,D9+1,D9),"17:20"*1)-MAX(C9,"8:50"*1),0),0) S9には =IF(COUNT(C9:D9)=2,MAX(MIN(IF(C9>D9,D9+1,D9),"22:00"*1)-MAX(C9,"17:20"*1),0),0) T9には =IF(COUNT(C9:D9)=2,MAX(MIN(IF(C9>D9,D9+1,D9),"5:00"*1+1)-MAX(C9,"22:00"*1),0)+MAX((MIN(D9,"5:00"*1)-MIN(C9,"5:00"*1)),0),0) と入力します。 これで休憩時間や休日出勤等関係なく、純粋に出社時刻と退社時刻から計算した早出・定時・残業・深夜の時間数がQ~T列に入ると思います。 このQ~T列の時間数から、P列の値("休日出勤")に基づいて条件分岐しつつ、休憩時間を差し引く計算をします。 E9には =FLOOR(IF(P9="休日出勤",0,R9-F9/1440),"0:15")*24 H9には =FLOOR(IF(P9="休日出勤",0,Q9),"0:15")*24 I9には =FLOOR(IF(P9="休日出勤",Q9+R9+S9-(F9+G9+J9)/1440,S9-(G9+J9)/1440),"0:15")*24 K9には =FLOOR(T9-L9/1440,"0:15")*24 M9には =E9+H9+I9+K9 と入力します。 夕方休憩と普通残業内休憩は考慮しなくてよいと書かれていますが、一応普通残業から差し引くようにしています。 それと勝手ながら15分単位で切り捨てる処理も含めています。

sayu0223
質問者

お礼

ありがとうございます。 初めからこのして聞いた方が早かったですね。 極力自分で何とかしようとネットで調べて色々やりましたが、計算式が長くなるにつれて訳が分からなくなり、混乱してしまいました。 教えて頂いたものを元に作りつつ、曖昧な関数の知識もちゃんとした知識になるよう勉強しようと思います。 ありがとうございました。

その他の回答 (1)

  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.1

>早出残業欄にも早出分が表示されてしまい、普通残業分にも含まれる為重複してしまいます。 はい,早出残業を別枠で計算しているというご説明はありませんでしたが,先の回答ではその旨指摘をしておきました。 休日の8:50以前を「早出枠」で計算するのか「残業枠」で計算するのかが不明でしたが, >O9セルに休日出勤と入力した場合、早出残0.50を出ないようにし、普通残は昼休憩を差し引いた7.75にする ということで「休日出勤では全部残業枠にしたい(早出には数えない)」という事で良いのでしたら,普通残の計算は元の式マイナスIF(休日は,昼休み時間数,そうでないならゼロ)とでもしておいて, G9: =IF(O9="休日出勤",0,今の早出の式) としておきます。 #補足 今の表組みに囚われているため,段々とこのように継ぎ接ぎ継ぎ足しになっていきます。 たとえば  平日早出  平日遅刻  平日通常勤務時間  平日早退  平日普通残  平日深夜残  平日休憩  休日普通残  休日深夜残  休日休憩 などのように漏れなく列を設けてそれぞれしっかり計算し,合計するような作り方に勤務表全体を見直す事をお薦めします。

sayu0223
質問者

お礼

再度の回答ありがとうございました。 ご指摘は分かっていたつもりでしたが実際は理解出来ておりませんでした。 実際早出で入力したらおかしいことに気付き、締めてしまった後でしたので再度質問した次第です。 ネットで調べた情報を元に付け足したりしていた為、ごちゃごちゃになり更に分からなくなっている現状でもありますので、これを機に関数をちゃんと勉強しようと思います。 ありがとうございました。

関連するQ&A