- ベストアンサー
エクセルで足し算の合計が合わない
A1のセルに¥1,567,000円、B1のセルに¥78,350円(関数は+A1*5%)C1のセルにA1+B1の合計を求めたいのですが、計算機でやると¥1,645,350円になりますが、コンピュータでは¥1,645,349円になります。どうしてですか?
- みんなの回答 (9)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
B1セルに下記の数式を入れてみてください。 「=ROUND(A2*5/100,0)」 私の環境(Excel97 SR-2,Excel2002 SP-3)では仰るような現象は再現しないので 検証はできませんが、下記URLをよく読むと恐らく質問者さんの環境では「5%」の値が 私たちが認識している「5%」ではなく、それに近い値の少数で計算しているものと思われます。 (#4さんが仰っているのと同じことです) 簡単に言うとエクセルでは0.1など少数の値はそれに近い値を内部データとして扱っているので 場合によっては計算結果に誤差が生じてしまうようです。 多分「5%」も「0.05」ですので同じことだと思います。 ですので、B1内の計算式を全て整数で構成し小数点以下第一位を四捨五入するのが 良いのではないかと思います。 これでもだめな場合は申し訳ありません。
その他の回答 (8)
度々すみません。 よく確認したのですが数式に誤りが残っていたので訂正します。 × =ROUND(A2*5/100,0) ○ =ROUND(A1*5/100,0)
#6です。追加で問題解決のヒントになりそうなことを書いておきます。 試しに、新規にエクセルを開いて下記のように入力してみてください。 A1・・・1566999.5 B1・・・=A1*5% C1・・・=A1+B1 次に各セルを小数点表示桁上げで小数点第3位まで表示すると、セル内の表示は下記のようになると思います。 A1・・・1566999.500 B1・・・・ 78349.975 C1・・・1645349.475 次に各セルを小数点表示桁下げで整数のみを表示すると、セル内の表示は下記のように変化すると思います。 このときA1のセル内に表示されている数値と数式バー内の数値に着目してください。 A1・・・1567000 (数式バーでは1566999.5) B1・・・・ 78350 C1・・・1645349 つまり、小数点表示桁の設定で表示される数値に変化があるにもかかわらず、計算自体はもともとの 数値で実行されています。 これらのことを踏まえた上で、計算にかかわる全てのセルを電卓等で検証すると原因がわかるかと思います。 あと、余計なことかもしれませんが、前の回答でROUNDUP(繰上げの関数)としましたが会社の帳簿か何かの場合、 上司の方に端数は四捨五入なのか、繰上げなのか、繰下げなのか確認しておいたほうがいいかと思います。
A1のセルは他のセルの計算結果を出しているセルではありませんか? もし、自身でキーボードから数値を入力したのなら以下の解説は無視してください。 試しにツールバーの「小数点表示桁上げ」をクリックして小数点以下を表示してください。 このとき該当セルの数値が変化したら、内部データと表示データは違うことになります。 計算は内部データを使っているので、場合によっては計算結果に見かけ上の 誤差が生じることがあります。 たとえばA1のセルが、 桁上げ前・・・1,567,000(見かけ上の値) 桁上げ後・・・1,566,999.5(真の値) などとなっていた場合、当然この後の計算結果も違ってきますよね? これを桁を変化させても数値が変わらないようにするには小数点以下を 繰り上げてしまえばいいですよね。 つまり、A1セルにROUNDUP関数を使い、小数点第以下一位を 繰上げし、整数を計算結果として返せば見かけ上の値と真の値が 一致するので後の計算結果が正確なものになります。 具体的にはA1セルに「=ROUNDUP(元の計算式,0)」と入れてあげればいいです。
- Hyoutan
- ベストアンサー率25% (69/266)
B1,A1+B1ともに小数点以下2桁で表示させましが,それぞれ,78,350.00, 1,645,350.00となります。????
- Chirdren
- ベストアンサー率47% (21/44)
試してみましたが、Excel2000ではきちんと78,350と計算されました。OSはWin2000です。 計算結果に誤差を生じるのは、浮動小数点数値演算において、数値を効率的に処理が可能な形式で格納していることから生じています。 詳しくは、こちら・・ http://support.microsoft.com/default.aspx?scid=kb;ja;78113&Product=xlw2kINT 環境等に依存しないで、期待通りの結果を得るためには、B1の計算で桁丸めを行います。 =round(A1*0.05,0) 最後の,0 は桁丸めの位置になります。
- papayuka
- ベストアンサー率45% (1388/3066)
A1 1567000、B1 =A*5% 、C1 =A1+B1 で 1645350 になりました。 A1セルの値が表示形式で「1567000」になっているだけで、実際は 「1566999.5」とかなのでは?
- gutugutu
- ベストアンサー率14% (184/1234)
試しにやってみましたが¥1,645,349になりませんでした。さっきのは無視してくださいm(__)m
- gutugutu
- ベストアンサー率14% (184/1234)
端数の問題だと思います。切り上げや四捨五入やら設定を変えればよいと思います。
補足
何度もありがとうございます。A1のセルには直接1567000と入力してます。C1の答えが1645350にしたいのです。