- ベストアンサー
エクセルの関数について
初歩的な質問ですみません。 表の中で小計が二つ(仮にA、Bとします)、その二つの合計が一つ(仮にGとします)あります。 AもBも小数点以下を四捨五入しているため、時々GがAとBの表記の合計と1円合わなくなることがあります。 AとBはROUND関数を使っている為だと思います。 この誤差をなくす為,知っている関数のINT(sum関数+0.5)で末尾を切り捨てて誤差が出ないようにしていますが、もっと良い方法はありませんか?
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
> 項目 実際の値 四捨五入した値 > 小計A 1234.4 1234 > 小計B 678.4 678 > 合計 1912.8 1913 >となる場合、四捨五入後の数値の合計1912にしたいのです。 単純に =ROUND(小計A,0)+ROUND(小計B,0) とすれば良いです。 ここで重要なのは「2つをROUNDで四捨五入してから足している」と言う事。 以下の2つの式は「結果が異なる」ので注意して下さい。 =ROUND(小計A,0)+ROUND(小計B,0) =ROUND(小計A+小計B,0) =ROUND(小計A,0)+ROUND(小計B,0) では、1234.4が1234になり、678.4が678になってから、1234+678=1912が求められます。 =ROUND(小計A+小計B,0) では、1234.4+678.4が足されて1912.8になり、1912.8が四捨五入されて1913になります。 なお、おおもとの小計がどっちも四捨五入済みで、1234と678になっているなら、単純に足し算すれば1912になる筈です。
その他の回答 (3)
- nattocurry
- ベストアンサー率31% (587/1853)
うまく伝わっていないようなので、A、B、G、それぞれの実際の計算式を提示してみてはいかがですか? Gを、四捨五入後のAの値と、四捨五入後のBの値の合計にすれば、誤差は無くなると思いますけど。
お礼
ありがとうございました。 これからは、質問の仕方に注意します。
- chonami
- ベストアンサー率43% (448/1036)
そうですね。 小計をさらに1で割ってみてはどうでしょう。 小計に入っている数式の後ろに「/1」を加えてみて、合計は普通にSUMで如何ですか?
お礼
やってみましたが・・・ 私の説明が悪かったみたいです。 すみません
- chie65536(@chie65535)
- ベストアンサー率44% (8740/19838)
現状は、 項目 実際の値 四捨五入した値 小計1 1234.5 1235 小計2 678.9 679 合計 1913.4 1914 となり、実際の合計が1913.4なのに1914になってしまう、と言うのが問題なのですよね? この場合、AとBの値を四捨五入してはいけません。 AとBの「セルの書式指定」を「数値、小数点以下の桁数 0桁」にします。 Gは、そのままA+Bにして、同じく、セルの書式指定で小数点以下の桁数を0にします。 こうすると、 項目 実際の値 表示される値 小計1 1234.5 1235 小計2 678.9 679 合計 1913.4 1913 のようになります。 以下、蛇足ですが、もし、 項目 実際の値 四捨五入した値 小計1 1234.5 1235 小計2 678.9 679 合計 1913.4 1913 になってしまって「1235と679を足したら1914になる筈なのに、1913になるのが問題だ」とお考えなら、それは間違いです。 この場合、合計は「1913」となるのが正しく、1914ではありません。
お礼
すみません。説明不足でした。 上記の例を使わせていただきます。 項目 実際の値 四捨五入した値 小計A 1234.4 1234 小計B 678.4 678 合計 1912.8 1913 となる場合、四捨五入後の数値の合計1912にしたいのです。 回答いただいた場合ですと合計は1235+679の1914と表記したいのです。 再度、教えてください。
お礼
ありがとうございます。大変良くわかりました。 ROUNDの使い方だったんですね。 これまでの苦労がうそのようですが、本当に助かりました。