É um problema de precisão de ponto flutuante.
3.4 - 4.0 é realmente algo como -0.6000000000001
e
3.5 - 4.1 é na verdade algo como -0.5999999999999
Material básico. link
A solução foi arredondar a coluna de saída.
C3 = ROUND(A3 - B3, 2)
Excel para Mac v15.37 no OSX 10.11.6.
Aqui está um exemplo minimamente reproduzível:
| A | B | C |
|=|=======|========|========|
|1| First | Second | F-S |
|2| 3.4 | 4.0 | =A2-B2 |
|3| 3.6 | 4.2 | =A3-B3 |
|4| 3.5 | 4.1 | =A4-B4 |
Classifique por C
e depois por A
.
Asaídaé:
|A|B|C||=|=======|========|========||1|First|Second|F-S||2|3.4|4.0|-0.6||3|3.6|4.2|-0.6||4|3.5|4.1|-0.6|
Asaídaesperadaé:
|A|B|C||=|=======|========|========||1|First|Second|F-S||2|3.4|4.0|-0.6||4|3.5|4.1|-0.6||3|3.6|4.2|-0.6|
SeeucopiaracolunaC,colá-lanovamentecomo"valores", para que a célula contenha o literal -0.6
em vez da fórmula, então ela será bem ordenada. Mas eu não quero ter que fazer isso.
Como posso fazer isso classificar corretamente?
É um problema de precisão de ponto flutuante.
3.4 - 4.0 é realmente algo como -0.6000000000001
e
3.5 - 4.1 é na verdade algo como -0.5999999999999
Material básico. link
A solução foi arredondar a coluna de saída.
C3 = ROUND(A3 - B3, 2)
Tags microsoft-excel sorting