Différence d'évaluation d'une expression dans un SI

Bonjour le forum,

Dans un fichier avec un calcul (ici B et C), on veut une colonne de contrôle en D pour vérifier que le résultat est nul. L'expression utilisée (en H et I) est bien nulle mais le contrôle dans le SI() en D6 ne l'est pas. Quelqu'un a-t' il une explication ?

14pbexcel.xlsx (8.59 Ko)

Salut,

Je ne suis pas certain de ce que j'avance ici, mais ça doit avoir à voir avec les bizarreries inexpliquées d'Excel (poussé à ses limites ??).

Mais si tu travailles avec des nombres limités à 10 chiffres après la virgule, un arrondi dans ta formule en D5 et incrémentées vers le bas pourrait faire l'affaire, tel que démontré dans le fichier ci-joint :

=SI(ARRONDI(B5;10)-ARRONDI(SOMME($C$4:C5);10)=0;"OK";B5-SOMME($C$4:C5))

Cordialement.

3pbexcel-v1.xlsx (10.34 Ko)

Bonjour à tous !

Voir les précisions de Microsoft ici !

La solution est d'en passer par la proposition d' Yvouille () : fonction ARRONDI

Merci de ta réponse. On a ajouté effectivement un arrondi mais on ne s'explique pas pourquoi le résultat de la même formule est différent dans le SI() toutes choses égales par ailleurs...

Merci de vos réponses. Pour info, on a conseillé de faire le test SI() sur une colonne dédiée contenant la formule pour éviter que l'arrondi cache un vrai écart.

Bonjour de nouveau !

Merci de ta réponse. On a ajouté effectivement un arrondi mais on ne s'explique pas pourquoi le résultat de la même formule est différent dans le SI() toutes choses égales par ailleurs...

Même formule ? Non ce n'est pas la même formule. En H6 vous avez =B6-SOMME($C$4:C6) et en D6 =B6-SOMME($C$4:C6)=0

Et cette différence fait tout !

Si vous évaluez votre formule H6 (modifiée en =B6-SOMME($C$4:C6)=0), vous obtiendrez l'affichage suivant :

image

Je suis très heureux d'avoir appris quelque chose aujourd'hui : ce problème n'avait rien à voir avec les bizarreries inexpliquées d'Excel mais avec les bizarreries expliquées d'Excel

Merci de continuer ! Oui, mais ajouter =0 correspond à une condition et on retrouve bien le même pb qu'avec le SI(). Le step d'éval juste avant est

capture

ce qui est correct (on a bien le résultat attendu avec toutes ses décimales à première vue, mais en fait juste après on retrouve le -1,81898940354586E-12 !

Bonjour de nouveau !

J'essaie simplement de démontrer que l'on ne peut que comparer ce qui est comparable. Et dans le cas d'espèce, compte tenu de la représentation numérique d'Excel, les deux formules ne sont pas identiques.

Hello, la formule à évaluer est bien la même. En fait si on remplace le test de B6-SOMME($C$4:C6)=0 par B6=SOMME($C$4:C6), le problème disparait :

capture

On a bien un soucis de précision d'évaluation d'un très petit nombre qui semble différente avec une condition.

Bonjour de nouveau !

On a bien un soucis de précision d'évaluation d'un très petit nombre qui semble différente avec une condition.

C'est très précisément ce que je tente de vous faire comprendre......

Deux formules différentes .....

Ce qui me surprend, c'est que l'expression est bien la même, c'est son contexte qui est différent.

Rechercher des sujets similaires à "difference evaluation expression"