プロが教える店舗&オフィスのセキュリティ対策術

始業時間と終業時間を入力して自動で早朝時間、基準時間、深夜時間を
振り分けれるように式を入力してるんですが、うまくいかない部分が出てしまいました。
8:00~17:00だと早朝が1:00、基準が7:00と正常な時間が返されるのですが、
8:30~17:30だと早朝が0:30、基準が7:30が正解なんですが、
早朝が0:00、基準が8:00となってしまいます。式のどこを直せばいいんでしょうか?

「時間計算がうまくいかない」の質問画像

A 回答 (3件)

FLOOR("9:00"-出社時刻,"0:30")で小数点誤差により、0:30より小になっている為と考えられますので事前に時間を丸めれば宜しいのではないでしょうか。


一例です。
=IF(C20=TIMEVALUE("9:00"),0,IF(D20>TIME(9,0,0),TIME(9,0,0)-FLOOR(C20,"0:30")))

因みにこのFLOOR関数を使用する目的が良く分かりません。
例えば、出社時刻が8:01~8:29までは1時間、8:30~8:59までは30分の早朝時間を計算する事になりますがこの仕様でよろしいのでしょうか。
    • good
    • 0

FLOORを使わない計算式にしてみてはいかがでしょう?

    • good
    • 0
この回答へのお礼

回答ありがとうございます。
わけあってこの式を大きく崩したくありません。
G20に入力されてる
=FLOOR(IF(C20>=TIMEVALUE("9:00"),0,IF(D20>TIME(9,0,0),TIME(9,0,0)-C20,)),"0:30")
の中のどこかを修正すればできるような気がすんですが、私が作成者ではないのでわからないんです。
作成者は連絡取れないので困ってます。どこを修正すればいいかわからないでしょうか?

お礼日時:2009/04/14 12:09

計算式を10進法で行うか、12進法で行うかです。



時間は、10進法に置き換えます。特に、給与計算であれば、15分単位の計算式であれば間違えません。

1時間は、1,0
45分は、0.75
30分は、0.50
15分は、0.25

たとえば、毎日残業を
15分
30分
15分
45分
した場合、0.25+0.50+0.25+0.75=1.75と出ます。1.75は、1時間45分と、なります。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
それは式のどこを修正したらできるのでしょうか?

お礼日時:2009/04/14 12:11

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!