• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:勤務時間の設定方法)

勤務時間の設定方法

このQ&Aのポイント
  • 出勤時間と退社時間を設定する方法について教えてください。
  • シフト制で、出勤時間と退社時間が人それぞれ異なる場合、数式を使って勤務時間を算出する方法を教えてください。
  • 具体的な例として、出勤時間が08:00~08:05、退社時間が16:50~17:00の場合、数式を使って08:00と17:00を求める方法を教えてください。

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

  • ベストアンサー
  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.6

解答No4です。付属のご質問についてお答えします。 出勤時間については次の式を使います。 =IF(MOD(A1,"1:00")-"0:00:1"<="0:05"*1,FLOOR(A1,"0:30"),CEILING(A1,"0:30")) ここでMOD関数にマイナスして0:00:1を使っているのは計算上の策です。 退社時間については次の式を使います。 =IF(MOD(B1,"1:00")+"0:00:1">="0:50"*1,CEILING(B1,"0:30"),FLOOR(B1,"0:30"))

dorasuke
質問者

お礼

クリモトさん、本当にやっかいなことを私のために頑張っていただいて誠に有難うございました。 いつもいつもお世話になります。 こんなに難しい数式はどなたかに甘えるしか手段がありません。 小生の力の及ばないところです。 今後とも宜しく御願いします。 テストをしてお礼が送れました。

すると、全ての回答が全文表示されます。

その他の回答 (5)

回答No.5

要するに、5分足したり10分引いたりしてから処理すればよいということでしょうか。 =FLOOR(B1+"0:10","0:30")-CEILING(A1-"0:05","0:30")

dorasuke
質問者

お礼

ご協力いただき有難うございました。 今後とも宜しく御願いします。

すると、全ての回答が全文表示されます。
  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.4

出勤や退社の時間付近では細かな時間指定が必要のようですが、それ以外の時間になれば30分単位で出勤の時間では切り上げる、退社の時間では切り捨てることになるでしょう。例えば30分単位で切り上げるときはCEILING関数を、切り捨てるときはFLOOR関数を使いますね。 出勤における時間は次のような式になりますね。 =IF(OR(A1<"8:00"*1,A1>"8:05"*1),CEILING(A1,"0:30"),"8:00"*1) 退社における時間は次のようになりますね。 =IF(OR(B1<"16:50"*1,B1>"17:00"*1),FLOOR(B1,"0:30"),"17:00"*1) したがってC1セルへの入力の式は次のようになりますね。 =IF(OR(B1<"16:50"*1,B1>"17:00"*1),FLOOR(B1,"0:30"),"17:00"*1)-IF(OR(A1<"8:00"*1,A1>"8:05"*1),CEILING(A1,"0:30"),"8:00"*1) なお、セルの表示形式は時刻にしておきます。

dorasuke
質問者

補足

いつもKURIMOTOさんにはお世話になります。 テストしました。 この場合は 0800~1700の時間の範囲みたいです。 下記は複雑な条件付きですが可能でしょうか。 ご苦労掛けますがもし可能ならばご教示いただけませんか。 A1(出勤時間) B1(退社時間)の値は24時間シフトですので上の範囲に当てはまりません。 ということは 0800~1700以外の勤務があります。 A1の値に対して5分迄は許容範囲(時間に遅れても認める)  但し5分以上は30分後の出勤になる 例1   A1=0905 0900 例2   A1=2304  2300 例3   A1=1006  1030 例4   A1=2307  2330 B1の値も10分前は許容範囲(早く帰っても認める)  但し10分以前は30分繰り上げ 例1   B1=1455 1500 例2   B1=2253 2300 例3   B1=1350 1400 例4 B1=1249  1230

すると、全ての回答が全文表示されます。
  • 135ok
  • ベストアンサー率34% (26/75)
回答No.3

ご参考程度で。 使っている人がいない気がしますが、添付資料のように表を使う方法もあります。 左の表の判別は、右の表の判定の値を表示しています。

dorasuke
質問者

お礼

ご協力いただき有難うございました。 今後とも宜しく御願いします。

すると、全ての回答が全文表示されます。
  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.2

> A1に08:00~08:05と入力したときは0800に、 > B1に16:50~17:00と入力したときは1700に 8時何分までが「08:00」なんですか? 「16:49」はどうします? お昼休みはどうします? 1時間単位?0.5時間は無し? 条件提示が不十分かも。

dorasuke
質問者

お礼

ご協力いただき有難うございました。 今後とも宜しく御願いします。

dorasuke
質問者

補足

説明不足で大変ご迷惑を掛けます。 18時何分までが「08:00」なんですか?  08時05分までです。(~0800~0805)   08時05分以上は08時30分になります。    当然、08時00分前は08時00分です。 2「16:49」はどうします?  16時30分の退社です。 3お昼休みは無視です。 引きません。 4出勤、退社の時間は30分単位です。 大変申し訳ありません。 宜しく御願いします。

すると、全ての回答が全文表示されます。
  • HAL007
  • ベストアンサー率29% (1751/5869)
回答No.1

計算式を簡単にする為に c列を出勤時間の補正に使う、式はIF関数とAND関数を組合わせて8時を決める。 d列は出勤と同様に補正に使う 簡単な計算ですが人から教えて貰ったものをそのまま使うと 後でメンテナンスが出来なくなります。 自分で計算式は入れて下さい。

dorasuke
質問者

お礼

ご協力いただき有難うございました。 今後とも宜しく御願いします。

すると、全ての回答が全文表示されます。

関連するQ&A