Souci condition si...

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Sly le globe trotter

XLDnaute Occasionnel
Bonsoir tout le monde,

J'ai un problème tout bête mais un peu farfelu.
En travaillant sur un fichier je me suis retrouvé sur un cas un peu tordu où une condition Si basique ne fonctionnait pas. En creusant, je n'arrive pas à trouver ce qui cloche.
Voici la situation que j'ai reproduit sur la version 2003 et 2007.
En A1, je tape 39.2
En A2, je tape 38.4
En A3, je tape la condition "=si(A1-A2>0.8;1;0)"

Magie, un 1 apparait en A3 ! Avez-vous déjà rencontré ce type de souci.

J'ai essayé pour d'autres valeurs autour de 39.2 et 38.4 en gardant toujours le même écart de 0.8... Faites le test, vous serez surpris.

Merci pour votre aide
 
Re : Souci condition si...

Bonjour Sly,

oui, j'avais déjà eu le cas.
J'ai peur qu'excel stocke ses nombre en Single et le Single a quelques soucis d'arrondis, fréquement. Je ne sais pas si c'est ça, c'est une supposition.

dans ce cas, il faut passer par des arrondis :

Code:
=SI(ARRONDI(A1-A2;1)>0,8;1;0)
 
Re : Souci condition si...

Bonjour Sly le globe trotter,

Le phénomène que tu exposes est bien réel. Pour le contourner, tu peux modifier ta formule ainsi :

Code:
=SI(A1-A2>0,80000001;1;0)

Je ne saurais pas expliquer le comment du pourquoi, mais je sais que ce genre de problème est récurrent sur Excel.

Espérant t'avoir aidé.

Cordialement.

Damned, je me suis fait griller. Bonjour tototiti2008.
 
Re : Souci condition si...

Bonjour Tous,

En mettant =A1-A2 dans une cellule et en affichant en fomat nombre avec n 0 on obtient: 0,800000000000004000000000000000

Etonnant non?

Ce qui semblerait confirmer ce que dis TotoTiti bien que la littérature nous dit qu'excel conserve les nombres en double!!!!!

A+ à tous
 
Re : Souci condition si...

Bonjour Sly le globe, tototiti, Papou-net, Hasco,

Pour calculer tous les langages de programmation convertissent les valeurs en binaire. Calculs faits ils reconvertissent en valeurs ordinaires et c'est là qu'apparaîssent des résidus.

Il n'y a rien à faire d'autre que de le prévoir avec les arrondis.

Bonne journée.

Jean-Pierre
 
Re : Souci condition si...

Salut Jean-Pierre,

Merci pour ces précisions techniques !
Dans ce cas là, pourquoi cette fonction arrondie n'est-elle pas intégrée directement dans les calculs ???

En tout cas, vous m'enlevez une belle épine du pied et m'évitez de belles boulettes 😀

Bonne continuation
 
Re : Souci condition si...

Bonjour, salut Hasco, Papou-net et tototiti2008,

Ce problème n'est pas propre à Excel, tous les tableurs le rencontre.

Les valeurs sont saisies en format décimal, les calculs sont établis par le processeur en format binaire et les résultats sont renvoyés en format décimal.
Cette double conversion peut provoquer une différence à partir de la 6ème décimale.

Edition : salut jeanpierre !
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

M
Réponses
11
Affichages
1 K
macca
M
J
Réponses
6
Affichages
2 K
J
M
  • Question Question
Réponses
3
Affichages
580
S
Réponses
2
Affichages
1 K
S
P
Réponses
6
Affichages
2 K
B
Réponses
0
Affichages
1 K
B
B
Réponses
1
Affichages
2 K
B
Réponses
2
Affichages
2 K
B
J
Réponses
6
Affichages
968
Retour