Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel
Excel Forum d'entraide sur Excel. Vos questions sur les fonctions, formules, manipulations, et tout sujet qui ne trouve pas sa place dans un sous-forum.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 21/03/2011, 00h29   #1
Membre actif
 
Inscription : juin 2008
Messages : 190
Détails du profil
Informations personnelles :
Localisation : Canada

Informations forums :
Inscription : juin 2008
Messages : 190
Points : 165
Points : 165
Par défaut Comparaison "SI" d'une cellule à une valeur numérique

Bonjour à tous,

j'ai un petit souci dans un classeur Excel que je n'arrive pas à résoudre ... En fait, j'utilise la fonction SI() afin d'effectuer une comparaison numérique du genre :
Code :
SI(FEUILLE1!$A$1=10;"VRAI";"FAUX")
Ma cellule A1 de FEUILLE1 est au format numérique, mais pourtant la fonction SI me retourne toujours un résultat faux. J'ai analysé le comportement d'Excel lors de l'évaluation de la formule et Excel prend la valeur de la cellule A1 qu'il converti en texte. J'obtient donc une comparaison de la forme:
Code :
SI("10"=10;"VRAI";"FAUX")
Ce qui est toujours faux puisque c'est deux formats différents. Je voudrais simplement qu'Excel reconnaisse la cellule A1 comme étant numérique pour que la formule SI puisse faire son travail... Il s'agit probablement d'une erreur tout bête, mais je dois avouer que je ne la vois pas...

Merci d'avance pour votre aide,
al_bert
al_bert est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/03/2011, 07h37   #2
Modérateur
 
Avatar de AlainTech
 
Homme Alain Gerard
Consultant informatique
Inscription : mai 2005
Messages : 3 674
Détails du profil
Informations personnelles :
Nom : Homme Alain Gerard
Âge : 58
Localisation : Belgique

Informations professionnelles :
Activité : Consultant informatique
Secteur : Finance

Informations forums :
Inscription : mai 2005
Messages : 3 674
Points : 7 672
Points : 7 672
Bonjour,

La cellule est probablement au format numérique mais le contenu l'est-il?

Pour le savoir, vérifie si l'alignement horizontal n"est pas forcé et regarde si ton nombre est à gauche ou à droite.
__________________
N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
Pensez aussi à voter pour les réponses qui vous ont aidés.
------------
Je dois beaucoup de mes connaissances à mes erreurs!
AlainTech est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/03/2011, 07h48   #3
Expert Confirmé
 
Philippe Tulliez
Développeur et formateur VBA, Excel et Word.
Inscription : janvier 2010
Messages : 1 305
Détails du profil
Informations personnelles :
Nom : Philippe Tulliez
Localisation : Belgique

Informations professionnelles :
Activité : Développeur et formateur VBA, Excel et Word.

Informations forums :
Inscription : janvier 2010
Messages : 1 305
Points : 2 653
Points : 2 653
Bonjour,
Pour compléter la réponse d'AlainTech, et si la cellule A1 doit rester alphanumérique, en multipliant par 1 le contenu de $A$1, le test sur "10" donnera "VRAI"
Code :
SI(FEUILLE1!$A$1*1=10;"VRAI";"FAUX")
__________________
Philippe Tulliez
http://philippe.tulliez.be
Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)

Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
corona est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/03/2011, 01h44   #4
Membre actif
 
Inscription : juin 2008
Messages : 190
Détails du profil
Informations personnelles :
Localisation : Canada

Informations forums :
Inscription : juin 2008
Messages : 190
Points : 165
Points : 165
Bonjour,

tout d'abord merci à vous deux pour vos réponses! Merci du truc corona, ça fonctionne en effet lorsque je multiplie par "1".

J'ai vérifié et l'alignement est forcé à droite. Lorsque j'enlève cette contrainte, le nombre se déplace à gauche, c'est donc du contenu alphanumérique... Je sais le contenu de ma cellule A1 provient elle-même d'une fonction de type:
Code :
=SI(B2="O";15;IF(B2="T";16;IF(B2="N";14;"")))
Est-ce que le problème pourrait venir d'ici? Bien que les nombres soit en "nombre" et non en texte, je me demande si la dernière condition fausse, "", pourrait causer ce problème...

Je dois avouer que je préfèrerais régler le problème à la source car cette cellule est utilisée quelques centaines de fois par la suite dans d'autres fonctions logiques...

Merci encore pour votre temps,
al_bert
al_bert est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/04/2011, 04h50   #5
Membre actif
 
Inscription : juin 2008
Messages : 190
Détails du profil
Informations personnelles :
Localisation : Canada

Informations forums :
Inscription : juin 2008
Messages : 190
Points : 165
Points : 165
Bonjour,

j'ai trouvé la solution alors je la post ici pour les intéressés! En fait, c'est que les fonctions "textes" comme SI par exemple retournent toujours du texte. Il faut donc employer la fonction n() qui converti le résultat en un format numérique. Il faut simplement faire attention à la perte d'information puisque n() retourne "0" dès que la valeur est non numérique.

Merci encore pour votre temps!
al_bert
al_bert est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/04/2011, 06h17   #6
Expert Confirmé
 
Philippe Tulliez
Développeur et formateur VBA, Excel et Word.
Inscription : janvier 2010
Messages : 1 305
Détails du profil
Informations personnelles :
Nom : Philippe Tulliez
Localisation : Belgique

Informations professionnelles :
Activité : Développeur et formateur VBA, Excel et Word.

Informations forums :
Inscription : janvier 2010
Messages : 1 305
Points : 2 653
Points : 2 653
Bonjour,
Il me semble que ce n'était pas la question initiale
Citation:
SI(FEUILLE1!$A$1=10;"VRAI";"FAUX")
ou
SI("10"=10;"VRAI";"FAUX")
Avec la fonction N() si la cellule contenant une valeur numérique est considérée par Excel comme Alpha (Par exemple dans le cas d'une apostrophe précédant la valeur '10), N() renverra 0
donc la formule
Code :
=SI(N(A2);"VRAI";"FAUX")
Renverra FAUX
Alors que
Code :
=SI(NON(ESTERR(A2*1<>0));"Vrai";"Faux")
Renverra VRAI
__________________
Philippe Tulliez
http://philippe.tulliez.be
Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)

Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
corona est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/04/2011, 18h42   #7
Membre actif
 
Inscription : juin 2008
Messages : 190
Détails du profil
Informations personnelles :
Localisation : Canada

Informations forums :
Inscription : juin 2008
Messages : 190
Points : 165
Points : 165
Bonjour,

en effet, désolé de la confusion, je dois avouer que ma question n'était ps très claire C'est que ma fameuse cellule FEUILLE1!$A$1 était également le résultat d'une fonction SI du genre:

Code :
=SI(A7="OUI";FEUILLE2!B57;FEUILLE2!C58)
(où les cellules B57 et C58 sont toujours numériques). Et c'est le résultat contenu dans cette cellule A1 qui devait être numérique pour que mon test puisse comparer des nombres entre eux et non du texte avec un nombre (comme le cas initial "10"=10 avant que je n'ajoute la fonction n() à cellule A1).

Désolé encore pour la confusion et la non clarté, la fatigue fait des ravages
Merci encore pour votre temps et votre aide,
al_bert
al_bert est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 20h19.


 
 
 
 
Partenaires

Hébergement Web