アプリ版:「スタンプのみでお礼する」機能のリリースについて

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


宜しくお願いします。

A 回答 (4件)

計算精度の問題です。


計算処理をおこなうと、0が
0.00000・・・・01になる場合
があります。
そのため、見た目は一致しているけれど
異なる値になっていると思われます。
ツールメニュー・オプション・計算方法・
「表示桁数で計算する」のチェックをON
して試してください。
    • good
    • 6
この回答へのお礼

回答ありがとうございます。
誤差かなぁとは思いつつ、今回の場合、少数点以下の表示桁数を増やしても同じ値だったので違うのでは、と思っていました。

オプションの設定の設定項目を教えてくれてありがとうございます。
参考にさせていただきます。

お礼日時:2005/05/16 15:28

詳細については、この場では説明しにくいので、



「Excel 浮動小数点」などで検索してみてください。

仮に、A1に=0.3-0.2-0.1とA2に=0.3-0.2-0.1+0として

二つの値を表示桁数最大で比較してみてください。

小数点以下の演算については、このような演算誤差を含みますので、正確を期する場合には、「整数として行う」または、誤差が生じない範囲での「ROUND関数の利用」などを行ったほうがよいと思います。
    • good
    • 2
この回答へのお礼

教えてくれた数式を入力してみると誤差が確認できました。
どうもありがとうございました。

お礼日時:2005/05/16 15:35

おそらく、F列の計算結果が、小数桁十何桁かで違っているのでしょう。


計算誤差と言われるもので、ご存じ通りコンピュータは2進数で計算します。また、EXCELは内部計算を小数点以下16桁まで計算します。この際に本来2進数で計算したものを10進数に標記する際に誤差が生じる場合があります。

対策としては、F列の式を

=ROUND(SUM(A1:E1)-MIN(A1:E1)-MAX(A1:E1),3)
とROUND関数などで丸めると微少な誤差を解消できます。
    • good
    • 0
この回答へのお礼

なるほど、小数点以下16桁まで計算に使用しているのですね。
勉強になりました。
どうもありがとうございました。

お礼日時:2005/05/16 15:32

 これは、F列の計算結果に微少な誤差が生じているためです。


小数点以下はるか下の方の誤差なので、通常は気にしなくても
よいレベルなのですが、比較をするときはこの誤差が現れることが
あります。

 解決策としては、F列の値を
=ROUND(SUM(A1:E1)-MIN(A1:E1)-MAX(A1:E1),4)
このように必要桁数以下を丸めてしまうことで、
誤差が無くなり、ご希望の順位表示となります。
 お試しください。
    • good
    • 0
この回答へのお礼

解決策も含めて教えていただきありがとうございました。
参考にしていきたいと思います。

お礼日時:2005/05/16 15:29

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