- ベストアンサー
エクセル 切捨てや、四捨五入で出た値の集計式
切捨てや、四捨五入で出た値を集計すると、多少の誤差が出る場合があります。どの様な数式にすればいいでしょうか。例題を下記にしるしましたので具体的に教えて下さい。 A B C 1 293,500 17,610 2 349,750 2,099 15,512 A1とA2は既定値。B1は、TRUNC(A*0.006,0)で小数点以下切捨て。 B2は、SUM(A2*0.006)で小数点以下四捨五入。 C2は、SUM(B1-B2)。 C2の正解は15,511ですが、1多い答えがでます。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
ROUND関数を使えば、誤差は出ないと思いますが。 SUM(A2*0.006)の式ですと、見た目は2,099でも値としては2,098.5なので、誤差が出ます。 ROUND(A2*0.006,0)にして下さい。カンマの後は小数点第何位を四捨五入するかです。 ちなみに、切り上げはROUNDUP、切捨てはROUNDDOWNです。
その他の回答 (3)
- himajin100000
- ベストアンサー率54% (1660/3060)
すまん、良く見たら全然違う話していたorz #3さんに従ってください。
- mshr1962
- ベストアンサー率39% (7417/18945)
>B2は、SUM(A2*0.006)で小数点以下四捨五入。 四捨五入なら ROUND(A2*0.006,0) ですね。SUM(A2*0.006)は集計するだけなので、見かけは2099ですが実際は2098.5です。 ゆえに C2=B1-B2=17610-2098.5=1511.5となり小数点以下の表示なしだと四捨五入で1繰り上がります。 後、B1ですが本当にTRUNC(A1*0.006,0)でしょうか、この結果だと1,761が答えになります。 TRUNC(A1*0.06,0) と係数が違うのでは?ご確認ください。
お礼
ありがとうございました。
- himajin100000
- ベストアンサー率54% (1660/3060)
Excel 2000 再現しない A1 = 293500 A2 = 349750 B1 = TRUNC(A1 * 0.006,0) = 1761 B2 = TRUNC(A2 * 0.006,0) = 2098 ★値が質問者様と異なる C2 = SUM(B1 - B2) = -337 ★わざわざSUM関数にする理由がわからん。 A1を一桁間違えたとしても A1 = 2935000 A2 = 349750 B1 = TRUNC(A1 * 0.006,0) = 17610 B2 = TRUNC(A2 * 0.006,0) = 2098 ★値が質問者様と異なる C2 = SUM(B1 - B2) = 15512 ★わざわざSUM関数にする理由がわからん。
お礼
ありがとうございました。大変助かりました。ROUNDで統一すれば誤差が出無い訳ですね。