XL 2016 Ecart de 0,00000000000001

Stéphan Alex

XLDnaute Nouveau
Bonjour à tous,

J'ai recherché une question similaire sans trouver la réponse. Si jamais, merci par avance de bien vouloir me rediriger.

Voilà, des responsables de colo doivent saisir leur comptabilité dans un fichier Excel. Chaque dépense (par exemple 106,70€) doit être ventilée sur 1 ou plusieurs postes. Pour être certain que ce montant a bien été justifié complètement, je fais un test tout bête : SI(-(+AD43-H43-K43)=0;"OK";"Ecart !").
Ce qui se passe : le responsable a dépense donc 106,70 qu'il subdivise en deux 96,91€ pour la catégorie Goûter et 9,79€ pour la catégorie Matériel. Or quand je fais le test, la fonction me renvoie une erreur ! Or, 9,79 + 96,91 font bien 106,70...
Après plusieurs tests, si au lieu de 9,79, je saisie 9,790000000001 alors Excel ne trouve plus d'écart...

Vous voudrez bien trouver le fichier en pièce jointe... D'où cela vient-il selon vous ?

Merci par avance,
Bien cordialement,
Stéphan.
 

Pièces jointes

  • test.xlsx
    11.5 KB · Affichages: 22
Solution
Bonjour Stéphan,

J'ai simplifié tes 2 formules :

En E2 : =SI(D2-A2=0;"OK";"Ecart!")
En E3 : =SI(D3-A3=0;"OK";"Ecart!")

Mais ce n'est pas ça qui a réglé le problème ; ce qui a réglé le problème c'est ceci :

Menu Fichier (bouton Office), Options Excel, Options avancées, fais défiler tout en bas ;
regarde la rubrique « Lors du calcul de ce classeur » ; coche la case :

Définir le calcul avec la précision au format affiché

En fait ce genre de problème est dû à ce que les nombres décimaux (base 10)
sont « traduits » et stockés en binaire (base 2) ; la précision numérique n'est
pas infinie, même sur le plus performant des PC.

Si c'est OK, merci de cliquer en bas de ce...

soan

XLDnaute Barbatruc
Inactif
Bonjour Stéphan,

J'ai simplifié tes 2 formules :

En E2 : =SI(D2-A2=0;"OK";"Ecart!")
En E3 : =SI(D3-A3=0;"OK";"Ecart!")

Mais ce n'est pas ça qui a réglé le problème ; ce qui a réglé le problème c'est ceci :

Menu Fichier (bouton Office), Options Excel, Options avancées, fais défiler tout en bas ;
regarde la rubrique « Lors du calcul de ce classeur » ; coche la case :

Définir le calcul avec la précision au format affiché

En fait ce genre de problème est dû à ce que les nombres décimaux (base 10)
sont « traduits » et stockés en binaire (base 2) ; la précision numérique n'est
pas infinie, même sur le plus performant des PC.

Si c'est OK, merci de cliquer en bas de ce post sur « Marquer comme solution ». ;)

soan
 

Pièces jointes

  • test.xlsx
    10.9 KB · Affichages: 2

djidji59430

XLDnaute Barbatruc
Bonjour à tous,

Ce n'est pas un test tout bête, un tout bête, c'est :
SI(AD43=H43+K43;"OK";"Ecart !"). ou SI(AD43=somme(H43;K43);"OK";"Ecart !")
T'as l'esprit compliqué, ou de comptable, ce qui revient au même !!
Avec tout les signes, Excel s’emmêle les pinceaux. Et ce serait pire si tu travaillais sur des heures ! Je ne vais pas rentrer dans des détails (que je ne connais pas), mais c'est du a la précision des variables qui intervient dans des opérations.
dans ma formule bête, il y a 2 opérations, dans la tienne, 5 opérations, donc plus de risque d'erreur quant a la précision

Crdlmt
 

Dranreb

XLDnaute Barbatruc
Je conseille en E2 :
Code:
=SI(ABS(A2-D2)<0,00001;"OK";"Ecart!")
1599060017215.png
 

Statistiques des forums

Discussions
312 429
Messages
2 088 351
Membres
103 824
dernier inscrit
frederic.marien@proximus.