- 締切済み
勤怠表を作成してます。 実働時間を求めるのに計算式を作成しました。 =
勤怠表を作成してます。 実働時間を求めるのに計算式を作成しました。 =IF(D5="","",IF(TEXT(E5-D5,"h:mm")>="8:00",FLOOR(TEXT(E5-D5-"1:00","h:mm"),"0:30")*24,FLOOR(TEXT(E5-D5,"h:mm"),"0:30")*24)) これだと、10:00時間(2ケタ)になった時、休憩の1:00時間を引いてきてくれません。どうすればよいか、何方かお教え下さい。宜しくお願いします。
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- kagakusuki
- ベストアンサー率51% (2610/5101)
私がやるとしたら、次の様にします。 =IF(D5="","",FLOOR(E5-D5-(E5-D5>=8/24)*1/24,30/1440)*24)
- pcb39431
- ベストアンサー率84% (16/19)
休憩時間を固定で計算されているようですが、 休憩時間も入力する形式にされてはいかがですか? その方が計算式が簡単になりますよ。 ちなみに、私が使用している勤務表では、 作業の開始時刻、終了時刻、休憩時間、控除時間(私用外出等の勤務時間に含めない時間)の4項目を入力しています。
- mt2008
- ベストアンサー率52% (885/1701)
Excelの話しですよね? E5セルとD5セルの差が8時間以上有るか否かの判断を文字列で比較しているのが原因です。↓この部分 TEXT(E5-D5,"h:mm")>="8:00" E5セルとD5セルの差が10時間の場合、「10:00」と、「8:00」と言う文字列で大小を判断していますが、文字列ですので先頭の、1と8で比較され「10:00」の方が文字列としては小さいと判断されます。 あくまでも文字列に拘るなら、↓の様に時刻を2桁に TEXT(E5-D5,"hh:mm")>="08:00" 私なら、文字列での判断はせずに↓の様にシリアル値で判断します (E5-D5)>=(8/24) Excelの話しでしたらMS Officeのカテゴリの方が回答が付き易いと思います。
お礼
有難うございます。 TEXT(E5-D5,"hh:mm")>="08:00" に変えてみたら出来ました。 確かに、シリアル値の方が楽で、簡単ですよね! 本当に、困っていたので、とても助かりました。 本当に、本当に、有難うございます。
- yambejp
- ベストアンサー率51% (3827/7415)
よくわからないけど、h→hhにしてみては? =IF(D5="","",IF(TEXT(E5-D5,"hh:mm")>="08:00",FLOOR(TEXT(E5-D5-"1:00","hh:mm"),"00:30")*24,FLOOR(TEXT(E5-D5,"hh:mm"),"00:30")*24))
お礼
有難うございます。 h→hhに、変えたら計算してくるようになりました。 本当に困っていたので、凄く助かりました。 回答してくださって、有難うございます。
お礼
確かに、いくつかの項目別に入力して計算するようにするのが、一番理想的ですよね! 有難うございます。