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

Exactitude des calcules sous Excel

A

andré

Guest
Salut à tous,

J'ai pu corriger un problème de non excatitude de calcul sous Excel, mais je n'en comprends ni le pourquoi, ni le comment.

Ce que je crains, c'est que d'autres types d'erreurs puissent exister sans que je ne m'en rende compte, ... alors bonjour la cata !

Quelqu'un d'entre vous a-t-il déjà été confronté au même type de problème ?

André
 

Pièces jointes

  • Exactitude_Excel.xls
    16.5 KB · Affichages: 95
T

Ti

Guest
c'est parce que dans ton dernier calcul tu as pris la partie entière, donc tu supprimes du même coup le dernier centime. Supprime le ENT dans ta formule de la cellule Q6 et tu retrouves ta somme
 
A

andré

Guest
Salut Ti,

Ta réponse est une solution (et je t'en remarcie), comme la mienne, mais pas une explication.
Si tu appliques le même raisonnement, mais en employant ARRONDI.INF au lieu de ENT, tu obtiens la même erreur.

Tu verras également, qu'avec ta solution, tu obtiens 2 pièces de 0.02 et 1 pièce de 0.01, alors qu'avec ma solution, tu as 1 pièce de 0.05, ce qui me parait quand même plus logique.

De plus, si tu dévellopes (un l ou 2 l, 1 p ou 2 p ?) la formule en remplaçant le SOMMEPROD par une addition de PRODUIT(s) (j'espère que tu vois ce que je veux dire), le calcul est exact.

J'ai lu dernièrement sur ce forum (mais je ne sais plus de qui), suite à une question très scientifique, qu'Excel avait une procédure particulière de calcul qui n'était plus exacte, mathématiquement, à partir d'un ceratin niveau des 15 chiffres derrière la virgule.

J'aimerais connaître exactement les limites d'Excel dans l'exactitude des calculs.

André

J'ai aussi essayé en reprenant sous les options "calcul avec la valeur affichée" (ou quelque chose du genre), mais c'est pas mieux.
 
T

Ti

Guest
en fait, Excel a une précision numérique de l'ordre de 15 chiffres, alors que selon le format de cellule utilisé, on ne voit que les premières décimales d'un nombre divisé. Pour reprendre ton exemple, décompose ta fonction et regarde le résultat renvoyé suite à la division sur les centimes, mais en ajustant l'affichage des décimales de façon à les voir toutes.

par exemple, avec 853,37, tes formules renvoient 0 pièce de 0.02, ce qui est faux (il en faudrait une). Maintenant, supprime le ENT pour afficher le nombre non tronqué de sa décimale, ajuste les décimales. Tu verras que ce nombre n'est pas exactement 1, mais 0,9999999999. Si tu supprimes la partie décimale de ce nombre, il te reste bien 0. Ce n'est donc pas Excel qui se trompe, mais ta formule qui ne tient pas compe de cet état de fait. Nous sommes trompés par ce que nous voyons et en oublions ce qu'il y a derrière.
Pour régler ce problème, arrondi les nombres renvoyés après la division à 2 décimales en utilisant ce genre de formule :
ENT(ARRONDI(($B8-SOMMEPROD($C$5:O$5;$C8:O8))/P$5;2))
 

Pièces jointes

  • Exactitude_ExcelTi.zip
    5.2 KB · Affichages: 55
J

Jean-Marie

Guest
Bonsoir le forum

De toutes façons, si le calcul est inexacte, ce n'est pas Excel le coupable, c'est le cœur du microprocesseur.


Tu as aussi la possibilité de forcé (par l'intermédiaire des options de calcul) le calcul à la précision d'affiche. Ce qui évite de faire des arrondis.

@+Jean-Marie
 
A

andré

Guest
Re: Exactitude des calculs sous Excel

Salut à tous deux, et merci de vos réponses.

Elles me reconfortent en confirmant ce que je pensais : Excel n'est pas fiable à 100%.
Lorsque le résultat mathématique est 1, il ne faut pas afficher 0.99999...

Je l'avais déjà remarqué en d'autres occasions, c'est pourquoi j'ai toujours introduit des tests de vérification dans mes feuilles de calculs et j'ai bien eu raison, ce qui m'a aussi permis de trouver l'astuce en ajoutant le 0.001 pour rétablir la situation.

Mais ceci n'explique toujours pas le pourquoi.

André
 

Discussions similaires

Réponses
19
Affichages
4 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…