- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:RANK関数の同点の処理について)
RANK関数で同点の処理について
このQ&Aのポイント
- RANK関数を使用する際に、同点の場合に同位として処理されない現象に遭遇しました。
- 参照するセルの値が数式の場合は同位として処理されないようですが、直接入力した点数の場合は同位として処理されます。
- バグの可能性も考えられますが、詳細な情報が見つからないため原因を特定できません。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
noname#164823
回答No.1
その他の回答 (3)
- MackyNo1
- ベストアンサー率53% (1521/2850)
回答No.4
>計算式にROUNDUPを入れて強制的に小数点以下を切り上げて対応出来ました。 ROUNDUP関数では整数よりわずかに大きいときと小さい時に違う値となるので、正しい計算ができません。 このようなケースでは、すでに回答したように、十分な桁数をとったROUND関数にしてください。
質問者
お礼
回答ありがとうございます。 ROUNDでないとだめなんですね。 お恥ずかしい限りです。
- MackyNo1
- ベストアンサー率53% (1521/2850)
回答No.3
>状態としては、B列のC列の得点差をD列で算出して、このD列の値を用いて順位を出そうとしています。 この引き算が小数点を含む計算の場合は、D列の表示されている値は同じように見えても、丸め誤差のため実際は違う値になることがあります。 このようなケースでは、例えば「=D2=D4」のような2つのセルを比較する数式を入力するとFALSEとなります。 また、セルの書式を数値にして小数点以下の桁数を15桁にすると同じ値でないことがわかります。 このような場合の対応法は、D列の数式を以下のような計算式にして、丸め誤差の影響をなくします。 =ROUND(元の引き算の数式,10)
noname#164823
回答No.2
補足です。計算結果が小数になっていますよね。 バグではありません。
お礼
ありがとうございます。 確かに原因は、演算誤差だったようです。 小数点が発生するような計算では無かったので その可能性は考えていなかったのですが 演算誤差ってあるんですね。 計算式にROUNDUPを入れて強制的に小数点以下を切り上げて 対応出来ました。 良い勉強になりました。