[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『残業時間の計算方法について』(みるく)
エクセルで残業時間を計算しています。
色々と調べてみたものの、わからないので教えてください。
退社時間を入力すると、残業時間が計算されるように計算式を入れています。
しかし、正しく表示されない場合もあり、どのように訂正して良いのかわかりません。
定時は18:00で、15分毎に残業がつきます。
22:00以降は深夜残業となります。
残業時間の表示については、18:15退社→0.25、18:30退社→0.5と表示されるようにしています。
※18:20の場合は、0.25です。
残業時間の計算式は、
=IF(退社時間<TIME(22,0,0),(FLOOR(IF(退社時間>TIME(18,0,0),退社時間-TIME(18,0,0),0),"0:15"))*24,4)
深夜残業の計算式は、
=(FLOOR(IF(退社時間>TIME(22,0,0),退社時間-TIME(22,0,0),0),"0:15"))*24
※残業時間と深夜残業は、違うセルに表示されるようにしています。
しかしこの計算式ですと、退社時間が18:15の時に、残業時間が表示されません。
きちんと「0.25」と表示されるような方法を教えてください。
よろしくお願いします。
Microsoft Office Excel 2003です。
>しかしこの計算式ですと、退社時間が18:15の時に、残業時間が表示されません。
時間の計算には小数演算誤差の問題がつきまといます。 なので、Floorを使って丸める時に、僅かな不足から、予期せぬ切り捨てが行われることがあります。
ご提示の時刻データは分単位なので、1秒余分に足してから丸めれば、良さそうです。
元式=IF(退社時間<TIME(22,0,0),(FLOOR(IF(退社時間>TIME(18,0,0),退社時間-TIME(18,0,0),0),"0:15"))*24,4) 変更=IF(退社時間<TIME(22,0,0),(FLOOR(IF(退社時間>TIME(18,0,0),退社時間-TIME(17,59,59),0),"0:15"))*24,4)
元式 =(FLOOR(IF(退社時間>TIME(22,0,0),退社時間-TIME(22,0,0),0),"0:15"))*24 変更 =(FLOOR(IF(退社時間>TIME(22,0,0),退社時間-TIME(21,59,59),0),"0:15"))*24
(半平太) 2010/05/25 17:12
丁寧な回答ありがとうございます。
解決しました。
本当に助かりました!
ありがとうございました。
みるく
残業時間=IF(退社時間<TIME(22,0,0),(FLOOR(IF(退社時間>TIME(18,0,0),(退社時間*1440-TIME(18,0,0)*1440)/1440,0),"0:15"))*24,4)
深夜残業=(FLOOR(IF(退社時間>TIME(22,0,0),(退社時間*1440-TIME(22,0,0)*1440)/1440,0),"0:15"))*24
時刻計算時に「分」にしてから元に戻します。
<みや>
ありがとうございます。
別の方法もあるんですね。
勉強になります。
試してみて、やり易い方でやってみようと思います。
みるく
>別の方法もあるんですね。 そうなんですかねぇ? 小数誤差対策としては何もやっていないような気がしますが。 単なる結果オーライなんじゃないですか?
(半平太) 2010/05/27 12:34
半平太さんに教えていただいた方法でやっています。
ありがとうございました。
みるく
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.