• 締切済み

エクセルでの勤務合計時間の計算

エクセルで勤務合計時間を計算していますが、切り捨て・切り上げの関数入力が上手くいきません。 条件として 1)合計時間は数値に変換、0.5ずつ増やす    8時間30分(8:30)→8.5                               9時間(9:00)→9 2)出勤・退出時間で00~10分は00に切り捨て   8:02→8:00 3)出勤・退出時間で11~30分は30に繰り上げ   8:25→8:30 4)出勤・退出時間で31~45分は30に切り捨て   8:42→8:30 5)出勤・退出時間で46~59分は00に繰り上げ   8:56→9:00 書き方は模索中ですが    A   B   C   D 1 9:00~17:00  8 2 8:56~17:08  8 D列に合計時間を出す関数式を入力していきたいです。 説明が下手ですみません。 こういう場合の式はどのようになるのでしょうか? 特に(2)の10分切り捨てがあるのでややこしく、FLOORやCEILING等を使ってみたのですが 上手くいきませんでした…。 どなたか知恵をお貸ししてくださると幸いです。

みんなの回答

  • A88No8
  • ベストアンサー率52% (836/1606)
回答No.1

こんにちは >エクセルで勤務合計時間を計算していますが、切り捨て・切り上げの関数入力が上手くいきません。  エクセルの時間というのは、1.0未満の少数を「浮動小数点」フォーマットという内部形式で持っています。  計算結果が循環小数になっても、そのまま循環小数で維持できれば良いのですがメモリは有限ですので必ず桁落ち等の誤差が出て足し算でさえもきちんと計算出来ません。  このことから勤務時間の管理には、エクセルの時間フォーマットをそのまま利用するのは止めた方が良いです。 【エクセルの時間の内部値の例】  24時間=1 :エクセルでは24時間とはならずに1日と換算される  1時間=1/24≒0.041666666666…  30分=1/(24*2)≒0.02083333333…  10分=1/(24*6)≒0.0069444444444…  誤差の無い管理をしなくてはならないなら(質問者さんの現在の方法のまま勧めたら、そのうち就業者から集計結果にクレームが付きます)、hour関数やminute関数で整数に直して計算しmod関数やint関数で整形されることをおすすめしますm(^^;m