Trier Excel par colonne dérivée puis par autre colonne

1

Excel pour Mac v15.37 sur OSX 10.11.6.

Voici un exemple peu reproductible:

  |   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 |

Trier par CPuis par A.

entrez la description de l'image ici

La sortie est:

  |   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   |

Le résultat attendu est:

  |   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   |

Si je copie la colonne C puis la colle en tant que "valeurs", la cellule contient le littéral -0.6plutôt que la formule, alors le tri est parfait. Mais je ne veux pas avoir à faire ça.

Comment puis-je obtenir ceci pour trier correctement?

Frambot
la source

Réponses:

2

C'est un problème de précision en virgule flottante.

3.4 - 4.0 est en réalité quelque chose comme -0.6000000000001

et

3,5 - 4,1 est quelque chose comme -0.5999999999999

Trucs de base. http://floating-point-gui.de/

La solution consistait à arrondir la colonne de sortie.

C3 = ROUND(A3 - B3, 2)

Frambot
la source