プロが教えるわが家の防犯対策術!

いろいろな始業・終業時刻に対応できる、30分単位で自動計算されるエクセル勤務表を作成しています。

例えばA1セルに定時開始時刻の「8:40」B1セルに定時終了時刻の「17:10」と記入し、そこを基準に毎日の始業時間を30分単位で丸めたいときにはどのようにすればよいのでしょうか?
定時は変更されることがあるので、A1とB1セルを変更してもそこを起点に30分単位で丸められるような勤務表を作りたいです。

A列に実際のタイムカード始業時刻
B列に実際のタイムカード終業時刻
C列に、A列の時刻をA1セルの時間を基準に30分単位で丸めたもの
D列に、B列の時刻をB1セルの時間を基準に30分単位で丸めたもの

勤務時間、残業時間等は、D列とC列の時間を使って計算します。

FLOOR関数は0:00を基準とする丸め関数ですよね?

いい方法がありましたら、よろしくお願いします。

A 回答 (2件)

A1セルには8:40と入力し、B1セルには17:10と入力します。


A2セルから下行に始業時刻を、B2セルから下行に終業時刻を入力するとします。
C2セルには次の式を入力して下方にオートフィルドラッグします。
=IF(A2="","",IF(A2<=A$1,A$1,A$1+FLOOR(A2-A$1+"0:00:01","0:30")))
D2セルには次の式を入力して下方にオートフィルドラッグします。
=IF(A2="","",IF(B$1>=B2,B$1-CEILING(B$1-B2+"0:00:01","0:30"),B$1+FLOOR(B2-B$1+"0:00:01","0:30")))
    • good
    • 0
この回答へのお礼

やりたいことが完璧にできました!!
つたない説明を理解して頂き、詳細な数式まで教えて頂いて本当にありがとうございました。
頑張って勤務表を完成させます。

お礼日時:2009/11/26 09:00

C1に =CEILING(A1,"0:30")



D1に =FLOOR(B1,"0:30")

でいけると思います。
    • good
    • 0
この回答へのお礼

言われた通りにやってみましたが、やはり0:00を基準の30分単位となってしまいました。
ご回答ありがとうございます!

お礼日時:2009/11/26 09:01

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