
給与の計算をエクセルで行っているのですが、誤差が出て困っています。
A1に出勤時間(17:00)、B1に退勤時間(18:00)、C1に勤務時間を計算するため(B1-A1)*24、D1に時給(100)、E1にROUNDDOWN(C1*D1,0)で答えが99になってしまいます。
色々他の値でも試してみたのですが、全ての時給、勤務時間で誤差が出る訳ではなく、時給が600円や700円の場合に誤差が出たり、勤務が15時から16時でも誤差が出たりします。どのような法則で誤差が出るのか全くわからず、修正方法もわかりません。
どなたか良い解決方法がお分かりでしたら教えていただけませんでしょうか?
そもそもこのような場合に上記のような計算式を使用するのが間違いであればそれもご指摘ください。
よろしくお願いします。
No.5
- 回答日時:
丸め誤差を知る上で、ここは必ず目を通しておいた方が良いと思います。
http://pc21.nikkeibp.co.jp/special/gosa/
答えは第三回位に?
あと、こちらも
http://support.microsoft.com/default.aspx?scid=k …

No.4
- 回答日時:
No.3 です。
C1 は勤務時間として、単に =B1-A1 とするのが見た目にも自然かと。その場合は、
E1: =ROUNDDOWN(ROUND(D1*C1/"1:0",0),0)
とすればよろしい。
重ねてありがとうございます。
そうですね、その方法もあると思いますが、勤務時間の計算の式がもっと複雑で時間帯によって違ったりするものですから、NO.3の式を投入する方がすっきりしました。
No.1
- 回答日時:
A1~C1の書式を「数値」にして、小数点以下の表示桁数を10桁ぐらいにしてみましょう。
えらく半端な数値になっているはずです。もともと時間は60進法なので、PCの内部では半端な数値になっています。表示するときは丸めますが、計算上は半端なままです。そのため、このような計算では誤差が生じます。
これを防ぐには、C1の内容を「=ROUND((B1-A1)*24,0)」とするとうまくいくと思います。
さっそくありがとうございます。
しかし上記のような方法にすると17:30~18:00までの勤務の際には整数にされてしまうようです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
おすすめ情報