
Excel2000を使用しています。
下記の表を作成して、
F列には、=SUM(A1:E1)-MIN(A1:E1)-MAX(A1:E1)
G列には、=RANK(F1,$F$1:$F$4)
を入力していますが、
F2とF3は同じ値になるのに順位が違って出てきます。
確か、RANK関数は同値の場合同じ順位が出てくると思うのですが、
そうならないので困っています。
ちなみに、F列に数式ではなく計算結果を直接入力した場合には
同じ順位が出てきました。
どうしてそのようなことになってしまうのでしょうか?
ご存知の方がいましたら教えてください。
(A) (B) (C) (D) (E) (F) (G)
9.50 9.20 9.35 9.60 9.45 28.3000 1
9.40 9.30 9.35 9.55 9.45 28.2000 2
9.20 9.45 9.40 9.35 9.55 28.2000 3
9.45 9.30 9.30 9.40 9.50 28.1500 4
宜しくお願いします。
No.1ベストアンサー
- 回答日時:
計算精度の問題です。
計算処理をおこなうと、0が
0.00000・・・・01になる場合
があります。
そのため、見た目は一致しているけれど
異なる値になっていると思われます。
ツールメニュー・オプション・計算方法・
「表示桁数で計算する」のチェックをON
して試してください。
回答ありがとうございます。
誤差かなぁとは思いつつ、今回の場合、少数点以下の表示桁数を増やしても同じ値だったので違うのでは、と思っていました。
オプションの設定の設定項目を教えてくれてありがとうございます。
参考にさせていただきます。
No.4
- 回答日時:
詳細については、この場では説明しにくいので、
「Excel 浮動小数点」などで検索してみてください。
仮に、A1に=0.3-0.2-0.1とA2に=0.3-0.2-0.1+0として
二つの値を表示桁数最大で比較してみてください。
小数点以下の演算については、このような演算誤差を含みますので、正確を期する場合には、「整数として行う」または、誤差が生じない範囲での「ROUND関数の利用」などを行ったほうがよいと思います。
No.3
- 回答日時:
おそらく、F列の計算結果が、小数桁十何桁かで違っているのでしょう。
計算誤差と言われるもので、ご存じ通りコンピュータは2進数で計算します。また、EXCELは内部計算を小数点以下16桁まで計算します。この際に本来2進数で計算したものを10進数に標記する際に誤差が生じる場合があります。
対策としては、F列の式を
=ROUND(SUM(A1:E1)-MIN(A1:E1)-MAX(A1:E1),3)
とROUND関数などで丸めると微少な誤差を解消できます。
No.2
- 回答日時:
これは、F列の計算結果に微少な誤差が生じているためです。
小数点以下はるか下の方の誤差なので、通常は気にしなくても
よいレベルなのですが、比較をするときはこの誤差が現れることが
あります。
解決策としては、F列の値を
=ROUND(SUM(A1:E1)-MIN(A1:E1)-MAX(A1:E1),4)
このように必要桁数以下を丸めてしまうことで、
誤差が無くなり、ご希望の順位表示となります。
お試しください。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
人気Q&Aランキング
-
4
自由強制振動実験
-
5
マイナスを含むデータの平均と分散
-
6
誤差を含む加減乗除
-
7
引張試験 考察
-
8
sinθ≒θ の近似
-
9
有効数字と誤差率
-
10
ニュートンリングの測定精度に...
-
11
物理基礎について。有効数字に...
-
12
RC直列回路における位相の誤差
-
13
物理の実験レポートの書き方と...
-
14
コンデンサの静電容量に誤差が...
-
15
オームの法則 レポートの考察...
-
16
【エクセル】グラフ誤差範囲の0...
-
17
直線性について
-
18
実験値と理論値での誤差の原因
-
19
総合誤差の求め方??
-
20
誤差について。
おすすめ情報
公式facebook
公式twitter