• 締切済み

勤怠表を作成してます。 実働時間を求めるのに計算式を作成しました。 =

勤怠表を作成してます。 実働時間を求めるのに計算式を作成しました。 =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時間を引いてきてくれません。どうすればよいか、何方かお教え下さい。宜しくお願いします。

みんなの回答

  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.4

 私がやるとしたら、次の様にします。 =IF(D5="","",FLOOR(E5-D5-(E5-D5>=8/24)*1/24,30/1440)*24)

  • pcb39431
  • ベストアンサー率84% (16/19)
回答No.3

休憩時間を固定で計算されているようですが、 休憩時間も入力する形式にされてはいかがですか? その方が計算式が簡単になりますよ。 ちなみに、私が使用している勤務表では、 作業の開始時刻、終了時刻、休憩時間、控除時間(私用外出等の勤務時間に含めない時間)の4項目を入力しています。

srtanaka
質問者

お礼

確かに、いくつかの項目別に入力して計算するようにするのが、一番理想的ですよね! 有難うございます。

  • mt2008
  • ベストアンサー率52% (885/1701)
回答No.2

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のカテゴリの方が回答が付き易いと思います。

srtanaka
質問者

お礼

有難うございます。 TEXT(E5-D5,"hh:mm")>="08:00" に変えてみたら出来ました。 確かに、シリアル値の方が楽で、簡単ですよね! 本当に、困っていたので、とても助かりました。 本当に、本当に、有難うございます。

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

よくわからないけど、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))  

srtanaka
質問者

お礼

有難うございます。 h→hhに、変えたら計算してくるようになりました。 本当に困っていたので、凄く助かりました。 回答してくださって、有難うございます。

関連するQ&A