[[20180515121809]] 『勤怠表・時給計算について』(ミーハミカクトウ) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『勤怠表・時給計算について』(ミーハミカクトウ)

勤怠のエクセルを作成しました。

例)
出勤時間 9:00
退勤時間 12:00

12:00-9:00 =3時間

これを一週間分つけていいき、合計時間をだします。

そして時給800円換算したいので
=(合計時間*24)*800 で時給800円換算したものを出しました。【A】

そしてすべて100円単位で支払われ、切り上げるため
=ROUNDUP(【A】,-2) で100円単位にしました。【B】

この表を作ったのですが、1点おかしなことになります。
1週間で1時間しか働かなかった場合、
8:00-9:00=1時間 →【A】=(1時間*24)*800=800 【B】 800
16:00-17:00=1時間 →【A】=(1時間*24)*800=800 【B】900 
となります。

どうしてこのような現象になるのでしょうか?

< 使用 Excel:unknown、使用 OS:Windows10 >


日付型は、小数点以下で時間を表現しているので、2進数誤差があるためですね。
(1時間*24)*800 を計算して800と表示されているセルの書式設定を変えて「数値」にして、小数点以下の桁数をめいっぱい指定してみてください。16:00〜17:00の場合に、800.000000000001 になっているのが判るかと思います。

対策としては、Int(1時間*24)*800 のように、時間数を求めた際に整数化してしまうとか?
(???) 2018/05/15(火) 13:15


Int案、18:00〜19:00の場合に799.9999999999 になってしまい、駄目でした。時間数計算した値をROUND関数で丸めてから、再度ROUNDUP関数で切り上げですかねぇ。
(???) 2018/05/15(火) 13:33

 =TEXT(合計時間,"[h]")*800
 ではどうか?

(ねむねむ) 2018/05/15(火) 13:49


(???)さま
ありがとうございます。

(ねむねむ)さま
ありがとうございます。
この式の
=TEXT(合計時間,"[h]")*800

"[h]"とはどういうことでしょうか??
合計時間を文字列に変えて・・・ 
すみません、教えてください。

(ミーハミカクトウ) 2018/05/18(金) 12:34


 TEXT関数は第一引数の値に第二引数の表示形式を適用した文字列を返す。
 表示形式ではhは時刻データも時間部分を0から23で返すものでそれを[]でくくると24時間以上も返すようになる。
 とここまで書いて気づいたが分の部分を忘れていた。

 =TEXT(合計時間,"[h]:mm")*24*800
 ではどうか。
(ねむねむ) 2018/05/18(金) 13:12

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.