天使と悪魔選手権

ご質問があります。

現在Excelで表を作っているのですが、どうしても四捨五入で躓きます。

例) A 1234.56 →四捨五入(ROUND.1) →B 1235

上記のようになるのですが

例) B 1235×0.9 → 1111.1(小数点第一表示)

上記のようになってしまいます。

四捨五入したBのセルに対し0.9をかけているはずなのに
四捨五入を行う前のAに0.9をかけた答えが出てしまうのです。

これの謎が解けず困っています。
どなたかお分かりの方がいましたら宜しくお願い致します。

A 回答 (4件)

>これの謎が解けず困っています。


 ⇒単にセルの表示形式の勘違いです。(表示形式は表示のみで実体と相違します)
  本当に小数点以下を四捨五入する場合、=ROUND(セル,0)とします。

>例) A 1234.56 →四捨五入(ROUND.1) →B 1235
 ⇒ROUND(セル,1)は小数点1位の四捨五入で結果は1234.6、セルの表示形式を「0」にしていると思えるので表示は1235(エクセルが自動的に四捨五入した表示にする)
  因みに表示形式を標準にしておくと混乱しなかったと思います。

>例) B 1235×0.9 → 1111.1(小数点第一表示)
 ⇒1234.6×0.9で1111.14となり、表示形式が0.0としているので1111.1と表示
    • good
    • 0

round(1234.56,1)=1234.6


になるべきものです。
セルの表示設定で表示形式が整数になっているのではないでしょうか?

表示設定がどのようになっていても、計算式はセルの内部データに対して
行われます。
ですから、B×0.9の数式の対象は
「1234.56」でも「1235」でもなく「1234.6」になっています。
    • good
    • 0
この回答へのお礼

なるほど、やっと理解出来ました!
ご丁寧にありがとうございました。

お礼日時:2012/06/01 13:14

Bの式はちゃんと =ROUND(A1,0) と、なっていますか?

    • good
    • 0
この回答へのお礼

=ROUND(A1,2)で計算していました。
0に変えてやってみます。
回答ありがとうございます!

お礼日時:2012/06/01 13:07

>これの謎が解けず困っています。



セルBの『1235』はあくまでも表示だけです。内部的に処理されている値は『1234.56』です。
    • good
    • 0
この回答へのお礼

ROUNDはあくまで表示だけなのでしょうか?
もしそうであれば内部的に変更するやり方を知りたいのです。

お礼日時:2012/06/01 13:08

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!