IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Excel Discussion :

Résultat aberrant avec deux fonctions SI imbriquées [XL-2013]


Sujet :

Excel

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    697
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 697
    Par défaut Résultat aberrant avec deux fonctions SI imbriquées
    Bonjour à tous,
    En Y8, j’ai 3 possibilités : Un nombre supérieur à zéro, 0 (zéro) ou une cellule vide.
    En fonction d’Y8, j’attends respectivement en AC8 un « OUI », un « NON » et une cellule vide.
    J’ai donc en AC8, la fonction suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SI(Y8>0;"OUI";SI(Y8=0;"NON";""))
    Problème, si Y8 est une cellule vide, j’ai un « OUI » en AC8, alors que j’attends une cellule vide.
    Pourquoi ?
    Je voudrais comprendre d’où vient ce « OUI ».
    Le problème subsiste avec cette autre fonction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SI(Y8>0;"OUI";SI(Y8=0;"NON";SI(Y8="";"";"")))
    D’avance, merci beaucoup pour votre aide.
    bolide7

  2. #2
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    Bonjour,

    Si Y8 est vide et que tu écris ailleurs :

    Tu obtiens "0".

    Il faut tester :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SI(Y8>0;"OUI";SI(ESTVIDE(Y8);"VIDE";SI(Y8=0;"NON")))

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    697
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 697
    Par défaut
    Bonjour Daniel.C,
    Merci beaucoup pour ta rapide réponse, que je n'ai hélas pas comprise.
    En effet, nulle part, dans ma première fonction (c’est également le cas avec la seconde fonction), je n’ai écrit « =Y8 ».
    J’ai seulement écris que si Y8 n’est pas plus grand que zéro ou n’est pas égale à zéro, mettre une cellule vide en AC8 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SI(Y8>0;"OUI";SI(Y8=0;"NON";""))
    Pour ce qui est de ta proposition, le problème persiste.
    Alors que j’attends une cellule vide en AC8, car j’ai une cellule vide en Y8, ta fonction me donne un « OUI ».
    Bon après-midi.
    bolide7

  4. #4
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 217
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 217
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Ce que Daniel veut dire je pense c'est que lorsque tu testes si une cellule vide est égale à 0, tu obtiens VRAI.
    Pour Excel, une cellule vide est égale à 0 donc tu dois tester d'abord si elle est vide.
    Philippe Tulliez
    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
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  5. #5
    Expert éminent

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 603
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : Février 2010
    Messages : 8 603
    Par défaut
    Bonjour

    Pour compléter, de façon générale les formules renvoient 0 si on se réfère à une cellule ne contenant rien ou une chaîne vide renvoyée par une formule.

    Dans la majorité des cas, le plus simple est de masquer les 0 soit sur la plage concernée par un format de nombre ou par une mise en forme conditionnelle, soit sur l'ensemble de l'onglet par l'option prévue à cet effet.

    Le test du vide, comme proposé par Daniel, n'est nécessaire que si on veut effectivement différencier 0 et vide.

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    697
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 697
    Par défaut
    Bonjour Philippe et 78chris,
    Merci beaucoup pour vos informations complémentaires.
    Si je comprends bien, pour EXCEL, zéro et une cellule vide, c’est la même chose.
    Hélas, comme je le disais précédemment, la fonction de Daniel.C ne résout pas le problème évoqué.
    Bon dimanche à vous deux.
    bolide7

  7. #7
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 217
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 217
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Comme je te l'ai indiqué il faut commencer par tester si Y8 est vide
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SI(NBCAR(Y8)=0;"";SI(Y8=0;"Non";"Oui"))
    Philippe Tulliez
    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
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  8. #8
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    Ben non, ça serait trop simple. Suppose que A1:A10 soient vides :

    renvoie "0"
    renvoie "10". Donc, on ne peut pas dire que cellule vide et 0 soient équivalents.

  9. #9
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    @bolide7 :
    Hélas, comme je le disais précédemment, la fonction de Daniel.C ne résout pas le problème évoqué.
    Tu peux donner un exemple ?

  10. #10
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    697
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 697
    Par défaut
    Rebonjour à tous,

    Je confirme à Daniel que sa fonction ne change rien.
    Si j’ai une cellule vide en Y8, j’obtiens un « OUI » en cellule AC8, alors que j’attends une cellule vide.
    Bien évidemment, je serai bien incapable de t’expliquer pourquoi ta fonction ne marche pas si Y8 est une cellule vide.
    Je peux seulement te préciser que le contenu d’Y8 (>0, 0 ou cellule vide) est le fruit d’une fonction.

    Par contre la fonction proposée par Philippe répond à mes 3 exigences initiales.
    Si Y8>0, alors AC8="OUI".
    Si Y8=0, alors AC8="NON".
    Si Y8 est une cellule vide, alors AC8 est une cellule vide.

    Pour information, je viens de découvrir que la fonction suivante marche.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SI(Y8="";"";SI(Y8>0;"OUI";SI(Y8=0;"NON";"")))
    C’est vraiment étrange, car elle ressemble énormément à ma seconde fonction, qui elle ne fonctionne pas.
    J’ai seulement inversé l’ordre des conditions et commencé par tester si Y8 était vide, comme le précisait Philippe.

    Dans le cas où Daniel souhaiterait intervenir de nouveau sur cette discussion, je ne mets pas encore « Résolu ».
    Merci beaucoup à vous trois pour votre aide dominicale.
    Bonne fin de dimanche.
    bolide7

  11. #11
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 217
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 217
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Tu as un SI de trop. As-tu regardé la formule que j'ai diffusée ici ?
    Philippe Tulliez
    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
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  12. #12
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    Regarde la formule en U8 elle renvoie "VIDE" (formule affichée en U7) :
    Nom : Capture.JPG
Affichages : 161
Taille : 18,8 Ko
    Ceci dit, tu peux marquer la discussion comme résolue.

  13. #13
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    697
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 697
    Par défaut
    Bonsoir Philippe,
    Comme indiqué précédemment, ta fonction (comme ma dernière fonction) marche très bien.
    Il n’y a pas de problème.

    Bonsoir Daniel,
    Désolé de te contredire, mais ta fonction ne marche pas.
    Lorsque j’ai une cellule vide en Y8, je devrais avoir également une cellule vide en AC8, mais ta fonction me donne une cellule avec un « OUI » à l’intérieur.
    Faut-il que je t’envoie un fichier essai ?

    Bonne soirée.

  14. #14
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 126
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 126
    Billets dans le blog
    131
    Par défaut
    Salut.

    Au delà des réponses fournies par mes éminents "collègues", je serais curieux que tu testes vraiment Y8. Est-elle réellement vide? Si tu as un espace, par exemple, tu vas "croire" qu'elle est vide, mais pas Excel. Idem si en Y8, tu as une formule qui renvoie une chaine vide, par exemple...

    Souvent, le problème vient non pas de la formule, mais de la "vraie" valeur de la cellule.
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  15. #15
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    Ma formule renvoie "VIDE" parce que c'est ce que j'ai indiqué :

    PJ : bolide7.xlsx

  16. #16
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 126
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 126
    Billets dans le blog
    131
    Par défaut
    Salut Daniel,

    Oui oui, je ne contestais pas ta réponse, au contraire...

    Je généralisais la "réponse aberrante" en attirant l'attention sur le fait qu'entre ce que l'on voit et ce qu'Excel utilise, il y plus que de la marge...
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  17. #17
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    697
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 697
    Par défaut
    Bonsoir Pierre et Daniel,
    J’avais bien compris que « VIDE » de Daniel remplace "", mais le problème de la fonction de Daniel ne vient pas de là.
    Comme je l’avais indiqué dans mon message de 17h14, la cellule Y8 contient une fonction.
    En conséquence, lorsqu’elle est vide, c’est le résultat d’une fonction.
    Donc, comme le pensais Pierre, lorsqu’Y8 est vide, elle n’est pas tout à fait vide.
    Suite à cette remarque très pertinente de Pierre, je viens donc de tester avec une vraie cellule vide et miracle la fonction de Daniel fonctionne.
    Voilà donc l’origine du problème de la fonction de Daniel détecté et l’énigme solutionné.
    Très bonne soirée à vous tous.
    bolide7

  18. #18
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    @ Pierre Fauconnier :
    J'avais bien compris que tu mettais en doute, et à juste titre, le contenu de la cellule.
    @bolide7 :
    mais le problème de la fonction de Daniel ne vient pas de là.
    Comme je l’avais indiqué dans mon message de 17h14, la cellule Y8 contient une fonction.
    Oui, mais tu indiques qu'elle est vide depuis 12h06 ! et ma formule date de 12h30. Et je t'ai indiqué à 16h19 comment s'assurer qu'une cellule est vide !

  19. #19
    Expert éminent

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 603
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : Février 2010
    Messages : 8 603
    Par défaut
    Bonjour

    Si tu reprend mon poste #5 : je disais bien cellule vide ou formule renvoyant une chaîne vide. Cela aurait dû attirer ton attention et éviter tous ces allers retours...

  20. #20
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    697
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 697
    Par défaut
    Rebonsoir,
    Désolé, mais ne maitrisant pas EXCEL comme vous, j’ignorais que pour EXCEL il y avait 2 types de cellules vides :
    - Une cellule "presque" vide, puisque vide suite à une fonction.
    - Une cellule vide, réellement vide.
    Merci encore pour vos informations et pour votre disponibilité.
    Très bonne nuit.
    bolide7

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Probléme requête avec deux fonction SUM
    Par kamnouz dans le forum Requêtes
    Réponses: 2
    Dernier message: 08/04/2010, 17h29
  2. bouton avec deux fonctions
    Par Daniela dans le forum IHM
    Réponses: 5
    Dernier message: 18/06/2009, 11h23
  3. Résultats aberrants avec cvSVD
    Par GetTheTrigger dans le forum OpenCV
    Réponses: 1
    Dernier message: 21/08/2007, 10h20
  4. résultats requête avec deux tables
    Par ideal23 dans le forum Langage SQL
    Réponses: 3
    Dernier message: 08/03/2007, 11h10
  5. Image avec deux fonctions OnIDblClick
    Par Romainll93 dans le forum Delphi
    Réponses: 3
    Dernier message: 25/02/2007, 15h17

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo