- ベストアンサー
エクセルで勤務時間のIF関数
こんにちわ。エクセルで、バイトの月々の総勤務時間を計算したいんですが、うちのバイトは、勤務時間が8時間以上の時は1時間の休憩をいれなくてはならないことになってます。そこで、質問です。 勤務開始が12:00(A1) 勤務終了が21:00(B1) 勤務時間が(=B1-A1)となります。(C1) そのとき、IF関数で、『C1の値が8:00以上の時はC1の値から1:00を引き、D1にその値を表示する』というのを入れたいのですが、上手く出来ません。どういう式を入れればいいのか教えてください。 それと、エクセルで時間を計算する時に、12:00とか21:00とかをつかっててもいいのでしょうか?適切な時間計算法がありましたら教えてください。 よろしくおねがいします
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
既出の回答と似ていますが、 =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進法で扱えば集計などもとても楽です。 頑張ってくださいヽ(^。^)ノ
その他の回答 (4)
- imogasi
- ベストアンサー率27% (4737/17069)
8時間や1時間と言う「定数」を””で囲んで表すことを知っていれば、そのまま式に出来ます。 =IF(B3>A3+"8:00",B3-A3-"1:00",B3-A3)
お礼
””は知ってたんですが、式が上手くたてられなかったんですよ。。数学苦手なんで。。(汗) ありがとうございます!
- KYOSEN
- ベストアンサー率22% (68/300)
計算式を時間単位で入力すればいいですよ if(C1>1/3,C1-1/24,C1) として、目的セルを書式選択で時刻表示にすればOK
お礼
参考になりました!有難うございます!
- mshr1962
- ベストアンサー率39% (7417/18945)
=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)
お礼
参考になりました!ありがとうございます!
- shinkun0114
- ベストアンサー率44% (1553/3474)
D1セルに。 =IF(C1<="8:00",C1-"1:00","") これでできますよ。 ただし、D1セルの書式設定を時刻に変えてくださいね。
お礼
早速のご回答ありがとうございます!
お礼
うまくいきました! ありがとうございます!