dポイントプレゼントキャンペーン実施中!

EXCELで例えば、A1セルに7320000 B1セルに156 C1セルに26と入力してA1/B2*C1とすると電卓では、121.9999と続きますが、EXCEL計算では122.0000と勝手に四捨五入されてしまいます。四捨五入されず、実際の121.99999で表示させるにはどうすれば宜しいでしょうか?

A 回答 (12件中1~10件)

No4No8No11です。

しつこくてすいません。
いまさらですが「正しい数字」はいったいどこにあるのかを
考えていました。

732*26/156を分数で計算すると

732=2*2*3*61
156=2*2*3*13
 26=2*13

ですから、
2*2*3*61*2*13/(2*2*3*13)
=2*61/1
=122

ですね。
    • good
    • 0

No4No8です。


数字の正しさについて思うことがあったので追記です。

電卓で表示される数字とエクセルで表示される数字の
どちらが正しいかと言えば、やはりエクセルだと
思います。(ちなみに私の関数電卓でも122です)
実際は121.9999999994が正当のようですが、
121.99999と122では122の方が正しい数字に近いと言えます。
ただ、エクセルでも有効桁数に限界があるようで、
限界桁は四捨五入している模様です。(15桁かな?)

今回は割り切れる数字のようでしたが、割り切れない場合
はどこかで桁数を切らないと永遠に計算を続けることに
なりますから、方法があったとしてもそんなに大きな
桁数は取り扱えないようになっていると思います。
    • good
    • 0

間違い無く、EXCELもWindowsに入っている「電卓」も、四捨五入してます。


7320000/156=46923.07692307690000000000000000000>EXCEL、少数30桁表示
少数以下に26を掛けると、1.99999999940000000000000
整数部に26を掛けると、1219998これらを足すと電卓の方が正しい。
    • good
    • 0

 勘違いをなさっています。


表示桁の設定できる電卓を使っているかと思いますが、計算はExcelの方が正しく、電卓の方が間違っています。
 Excelで四捨五入をしているわけではありません。
 試しに、Windowsに入っている「電卓」で計算してみてください。
    • good
    • 0

No4です。

(A1を732で計算しています。)
むりやり電卓と同じ作業をする式を考えました。
=INT((INT(A1/B1*10^11)*C1/10^11)*10^9)/10^9

手元にある電卓で再現した場合、12桁電卓でしたので
最初のA1/B1は4.69・・・と整数部分が1桁、
小数点以下が11桁ですから、小数点以下12桁目
以下を切り捨てるために10の11乗倍して、小数点
以下を切り捨て、それをC1倍します。
次に、C1倍された数字は121.999・・・ですが
電卓だと整数部部3桁と小数点以下9桁が有効で
小数点以下10桁以降は切り捨てられていました。
そこで、10の9乗倍して小数点以下を切り捨て
再度10の9乗分の1にもどしてやると電卓と同じ
答えが得られました。

電卓の場合桁数が制限されていて、その桁以下は
四捨五入であったり切り捨てだったりします。
小数点が入ると整数部分の桁数によって小数点以下の
有効桁数が変わりますので、電卓を再現するなら
さらに整数部分の桁数も考慮して計算させる必要が
ありそうです。

電卓の限界部分を再現するためにはエクセルに
限界線を設定してやればいいと理解しましたが、
質問の意図とはズレていたかもしれません。
    • good
    • 0

No.5のarukamunです。



A1セル 7320000
B1セル 156
C1セル 26
であれば、
=ROUND(A1/B1,0)*C1

1219998
になりますが、いかがでしょうか。
小数点が付いているので勘違いしていました。
    • good
    • 0

A1/B1*C1なら A1*C1/B1と同じ答えですよね


電卓でA1*C1/B1を計算すると整数の答えに成りませんか

TRUNC()関数なら指定桁で切り捨てとヘルプに出てますが、121.999・・・には成らないのではないでしょうか
どうしてもこの121.999・・・端数の表示が必要なんですか
    • good
    • 0

こんにちは



これは四捨五入されているわけではありません。
A1/B2*C1=732/156*26=122
ですよね。
電卓が121.99999となるのは、桁数が制限されているからでる誤差です。
という事はエクセルで制度を落とせば良いわけですよね

=ROUND(A1/B2,4)*C1

の様な方法で行えば可能かとは思います。
ご確認ください。

この回答への補足

ありがとうございます。
=ROUND(A1/B2,4)*C1
を使いましたが、同じく121.00000と続きます。

補足日時:2003/05/30 18:07
    • good
    • 0

この例では電卓が間違っているのであって、四捨五入は


関係なさそうです。
例えば、電卓で732000*26/156と計算
すると、1220000と表示されます。

ついでに、四捨五入させたくない場合は、小数点以下で
必要な桁数が5ならば、10の5乗倍して、int関数で
小数点以下を切り捨て、10の5乗分の1にすれば
まとまります。
    • good
    • 0

左横の数字の1または、答えを算出するせるにマウスカーソルを持っていき、右クリックして、


プルダウンメニューの「セルの書式設定」をクリックして、表示形式タグ内の分類を数値にします。
すると、小数点以下の桁数の設定が出てきますので、そこで
桁数を増やしてください。

この回答への補足

ありがとうございます。
それは、既にやっておりますが、単に小数点以下がずっと0になるだけで、勝手に四捨五入されてしまいます。

補足日時:2003/05/30 17:58
    • good
    • 0

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