Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2016 Problème et énigme sur une formule

Sarmat31

XLDnaute Nouveau
Bonjour à tous,
Je rencontre un problème énigmatique sur excel.

CDEF
1
57 826,70 €
57 726,70 €
=C1-D10
2
- 21,66 €
=C2-D2
21,66 €
3
57 826,70 €
57 705,04 €
=SI(SOMME(E1:E2)=C3-D3;C3-D3;"ERREUR")
ERREUR
il affiche le mot que je lui demande "ERREUR" alors que les conditions sont correctes et qu'il devrait me faire la soustraction.
Ce qui me parait encore plus étrange c'est que si en C1 j'ajoute 978.34 à 57826.70 soit 58705.04 cela ne fonctionne toujours pas mais si j'ajoute 978.35 ou plus la ça fonctionne. Je bloque sur ça bêtement et ça doit être tellement évident que je ne vois rien.
Je vous joins mon fichier au cas ou !

Voyez vous d'où ça peut venir ?

Merci à ceux qui résoudrons mon mystère !
Très belle journée !
 

Pièces jointes

  • enigme.xlsx
    13.1 KB · Affichages: 10

JHA

XLDnaute Barbatruc
Bonjour à tous,

Pas de soucis lors de l'ouverture du fichier

JHA

58 705,05 €57 726,70 €978,35 €
- €- 21,66 €21,66 €
58 705,05 €57 705,04 €1 000,01 €

Lors du changement de valeur en "C5" par 57826,70
la somme fait 121,66 mais la soustraction fait 121,660000000003 donc "Erreur"
peut-être mettre un arrondi à 2 chiffres après la virgule.
 

Dranreb

XLDnaute Barbatruc
Bonjour.
Professionnellement, pour tester si deux résultat obtenus par des calculs différents sont pratiquement égaux, on teste généralement si la valeur absolue de leur différence est inférieure à un petit seuil.
En E11 :
Code:
=SI(ABS(SOMME(E5:E10)+D11-C11)<0,001;C11-D11;"ERREUR")
 

Sarmat31

XLDnaute Nouveau
OK merci mais du coup je ne comprends pas ce 0,000000003 il vient d'où ? j'ai rentré manuellement les montants en € qui ne sont que de 2 chiffres après la virgule, comment peut-il calculer ça !
 

Dranreb

XLDnaute Barbatruc
Que deux chiffres décimaux après la virgule !
Ceux ci emploient très souvent la totalité des bits disponibles pour l'exprimer en binaire
Par exemple =100-(0,1+0,1) a une valeur différente de =100-0,1-0,1
100-(0,1+0,1) donne 7022800668930867 / 2^46
100-0,1-0,1 donne 1755700167232717 / 2^44
Retraduit en décimal :
100-(0,1+0,1) donne 99,7999999999999971578290569595992565155029296875
100-0,1-0,1 donne 99,80000000000001136868377216160297393798828125
0,1 quant à lui c'est 3602879701896397 / 2^55 en binaire virgule flottante double précision, soit 0,1000000000000000055511151231257827021181583404541015625 retraduit en décimal.
 
Dernière édition:

Sarmat31

XLDnaute Nouveau
Ok merci j'ai une explication informatique, cela me rassure j'en perdais mon latin
Du coup je vais l'adapter avec la formule de JHA qui fonctionne tip-top. Merci beaucoup à vous tous
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…