- ベストアンサー
Excelを使った残業時間自動算出について
- Excelを使って残業時間の自動計算方法について困っています。
- 具体的には、通常残業時間と深夜残業時間の自動計算を行いたいです。
- 就労規定に基づいて、18:00から22:00までの時間を通常残業時間とし、22:00から5:00までの時間を深夜残業時間とします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
MIN関数やMAX関数のちょっと便利な使い方、と言うのを考えてみます。 「=MIN(数値1,数値2)」と言う書き方をすると 「数値1と数値2で、小さい方」を返してくれます。 例えば、 =MIN(F1,"22:00") と書いてやり、F1セルの数字(時刻)をいじってやります。 F1セルに「18:00」と入力すると、「18:00」が返り、 F1セルを「22:30」としてやると、「22:00」が返ってきます。 これを応用し、添付図のH1セルに、 式:=IF(F7<="18:00"*1,"",MIN("22:00",F7)-"18:00") としてやると、F7が18時以前なら空白、 18時を過ぎたら「最大22時まで」の超過時間(普通残業)時間を返します。 同様の考え方で、I1セルには 式:=IF(F7<"22:00"*1,"",MIN("29:00",F7)-"22:00") としてやり、「22時を超えて翌5時(29時)までの分」を計算してやります。 (なので便宜上、F列には「29:15」と言う数字で打ち込んであります。) 以上、参考までに。
その他の回答 (1)
- KURUMITO
- ベストアンサー率42% (1835/4283)
24時を過ぎた時間は1:30のように入力するとします。 G7セルには次の式を入力して下方にドラッグコピーします。 =IF(COUNT(E7:F7)<>2,"",IF(F7>E7,F7-E7-IF(F7-E7>="8:00"*1,"1:00",0),IF(F7<E7,F7+"24:00"-E7-IF(F7+"24:00"-E7>="8:00"*1,"1:00",0),""))) H7セルには次の式を入力して下方にドラッグコピーします。 =IF(COUNT(E7:F7)<>2,"",IF(AND(F7>E7,E7<"22:00"*1,F7>"18:00"*1),MIN(F7,"22:00")-MAX(E7,"18:00"),IF(AND(F7<E7,E7<"22:00"*1),"22:00"-MAX(E7,"18:00"),""))) I7セルには次の式を入力して下方にドラッグコピーします。 =IF(COUNT(E7:F7)<>2,"",IF(F7>E7,IF(AND(F7>"22:00"*1,E7<"24:00"*1),MIN(F7,"24:00")-MAX(E7,"22:00"),""),IF(F7<E7,MIN(F7+"24:00","29:00")-MAX(E7,"22:00"),"")))
お礼
ご丁寧にありがとうございます! この方法でもできました! ぱっとこういう式が作れる方々本当にすごいなと感服です。 本当にありがとうございました。
お礼
ありがとうございます! とても早速入力してみたところうまく反映しました! 本当に助かりました。