• ベストアンサー

エクセルで勤務時間のIF関数

こんにちわ。エクセルで、バイトの月々の総勤務時間を計算したいんですが、うちのバイトは、勤務時間が8時間以上の時は1時間の休憩をいれなくてはならないことになってます。そこで、質問です。 勤務開始が12:00(A1) 勤務終了が21:00(B1) 勤務時間が(=B1-A1)となります。(C1) そのとき、IF関数で、『C1の値が8:00以上の時はC1の値から1:00を引き、D1にその値を表示する』というのを入れたいのですが、上手く出来ません。どういう式を入れればいいのか教えてください。 それと、エクセルで時間を計算する時に、12:00とか21:00とかをつかっててもいいのでしょうか?適切な時間計算法がありましたら教えてください。 よろしくおねがいします

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

  • ベストアンサー
  • snoopy64
  • ベストアンサー率42% (337/793)
回答No.4

既出の回答と似ていますが、 =C1-IF(TEXT(C1,"hh:mm")>"08:00","1:00",0) はどうですか。見た目わかりやすいでしょう? 時間の計算について。15分単位でしか発生しないなら、 ・12:00→12.00 ・12:15→12.22 ・12:30→12.50 ・12:45→12.75 のように、10進法で扱えば集計などもとても楽です。 頑張ってくださいヽ(^。^)ノ

acogui
質問者

お礼

うまくいきました! ありがとうございます!

その他の回答 (4)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.5

8時間や1時間と言う「定数」を””で囲んで表すことを知っていれば、そのまま式に出来ます。 =IF(B3>A3+"8:00",B3-A3-"1:00",B3-A3)

acogui
質問者

お礼

””は知ってたんですが、式が上手くたてられなかったんですよ。。数学苦手なんで。。(汗) ありがとうございます!

  • KYOSEN
  • ベストアンサー率22% (68/300)
回答No.3

計算式を時間単位で入力すればいいですよ if(C1>1/3,C1-1/24,C1) として、目的セルを書式選択で時刻表示にすればOK

acogui
質問者

お礼

参考になりました!有難うございます!

  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.2

=IF(C1>=TIME(8,0,0),C1-TIME(1,0,0),C1) TIME(8,0,0)はTIMVALUE("8:0:0") or "8:0:0" or 8/24 TIME(1,0,0)はTIMVALUE("1:0:0") or "1:0:0" or 1/24 でも可 ただ稀に誤動作を起こします。 万全にするなら =IF(ROUND(C1*24,0)>=8,(C1*24-1)/24,C1)

acogui
質問者

お礼

参考になりました!ありがとうございます!

回答No.1

D1セルに。 =IF(C1<="8:00",C1-"1:00","") これでできますよ。 ただし、D1セルの書式設定を時刻に変えてくださいね。

acogui
質問者

お礼

早速のご回答ありがとうございます!

関連するQ&A

専門家に質問してみよう