- ベストアンサー
エクセル 切捨て関数
エクセルで下記の関数を使用した場合、計算結果が切捨てされません。このような場合に切捨てをする場合はどのようにするのでしょうか。 ROUNDDOWN(A1*A2/A3,-3) A1は1581000 A2は1365000 A3は1785000 計算結果は1209000になります。 実際の計算結果は1208999.99999… 計算結果を1208000にしたいのですが。
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
> 計算結果は1209000になります。 > 実際の計算結果は1208999.99999 これは浮動小数点数の演算誤差で、正しい計算結果は1209000です。 > 計算結果を1208000にしたい 1209000 は切り捨てても1208000になりようがありません。
その他の回答 (5)
- nabeyann
- ベストアンサー率28% (49/169)
158100/1785000=0.8857142857142857142857142・・・・・・・・・・・・・ 0.8の後に857142の循環小数が続きますね これに、136500を掛けると、1208999.999999・・・・・・・・・ 表計ソフト(エクセル)は少数第14位で四捨五入しますので どうしても1208000にしたいのなら C1=ROUNDDOWN(A1/A3,4) ROUNDDOWN(C1*A2,-3) とか、工夫するしかない!
お礼
ありがとうございます。 電卓やエクセルを使用しだすと、正しい計算の答えも分からなくなり、困ったものです。
補足
tanakacchiさん、maruru01さん、Ribenrenさん、poosannさん、dejiji-さん、nabeyannさん ありがとうございます。 最近は、電卓やエクセルしか使わず、手計算することが無いので、このような現象が起こることが、初めて知りました。今回は、皆さんに回答をいただき、とても勉強になりました。 締め切りは、すみませんが、少しお待ちいただけますか。 締め切り時に、お礼の欄を使用させていただきます。
- dejiji-
- ベストアンサー率38% (327/858)
>実際の計算結果は1208999.99999… これは、計算機の計算結果ですよね。 >計算結果は1209000になります。 これが、エクセルでの計算結果ですよね。 もし、こうであれば可能性は有りますね。これ、計算機の桁数が10桁で、1365000/1785000*1581000の順で計算を行うと計算結果は割り切れない数値になります。 1365000/1785000=0.764705882 0.764705882*1581000=1208999.999 計算の順番を変えると、計算結果が1209000となる筈です。計算機側の計算誤差であって、エクセルの演算誤差ではなく、正の計算結果が1209000であるため、rounddownによる切捨てを行っても1208000には成り得ないでしょう。 エクセルで思い当たることは全て確認したつもりですが、計算結果は全て、1209000でした。
お礼
ありがとうございます。 電卓やエクセルを使用しだすと、正しい計算の答えも分からなくなり、困ったものです。
- poosann
- ベストアンサー率21% (14/65)
何回やっても1209000にしかならないので、おかしいな~って思って、計算機まで出してきて計算しました。 なので、間違ってないと思います。 これって、割り切れます。 だから最初に書いてある1208999.99999がそもそもおかしいと.... なので切り捨ての件でいけば、ROUNDDOWN(A1*A2/A3,-3)で合ってます。ためしに=ROUNDDOWN(1208999.9999999,-3)でやってみてください、答えは1208000になります。 ちなみに、INTは整数で丸めるので、=INT1208999.9999999)の計算結果は1208999になります。 なので、今回の計算結果では何回やっても、関数を変えても1209000にしかならないと思います。
お礼
ありがとうございます。 電卓やエクセルを使用しだすと、正しい計算の答えも分からなくなり、困ったものです。
- maruru01
- ベストアンサー率51% (1179/2272)
こんにちは。maruru01です。 そもそも、 =A1*A2/A3 の結果は、1209000であって、1208999.99999・・・ではありません。 INT関数を使用しても、TRUNC関数を使用しても結果は同じです。
お礼
ありがとうございます。 電卓やエクセルを使用しだすと、正しい計算の答えも分からなくなり、困ったものです。
- tanakacchi
- ベストアンサー率22% (135/592)
Accessでしか使ったことがないのですが Int関数でどうでしょうか? 「=INT(8.9) 8.9 を切り捨てて整数にします (8)」 詳しくはヘルプを参照してください。
補足
今回の場合は、INT関数をどのように利用すればよいのでしょうか。 ヘルプや本を読んでも、理解できません。
お礼
ありがとうございます。 電卓やエクセルを使用しだすと、正しい計算の答えも分からなくなり、困ったものです。