Problème imbrication de SI

Bonjour,

Je viens vers vous pour un problème que je ne comprend pas !

La commande :
"=SI(EQUIV(B6;Serveur!B3);Serveur!B3;SI(EQUIV(B6;Serveur!C3);Serveur!C3;SI(EQUIV(B6;Serveur!D3);Serveur!D3)))"

Le 1er "SI" répond, mais ceux d'après réponde #N/A ...

Merci par avance

4 réponses

  • Votes
  • Date
  • Date décroissante
  1. Contributeur
    Tu ne respectes pas la syntaxe de la fonction SI !

    Il faut commencer par un test, et toi tu n'en as aucun ...
    Quand tu écris =SI(EQUIV(B6;Serveur!B3); on s'attend à un test de comparaison du genre =SI(EQUIV(B6;Serveur!B3)=12;
    ou encore =SI(EQUIV(B6;Serveur!B3)>Serveur!Z9;
    1. Contributeur
      Bonjour à tous,

      Tu ne respectes pas la syntaxe de la fonction SI !
      Il faut commencer par un test, et toi tu n'en as aucun ...

      Pas exact.
      Le 1er paramètre est évalué, que ce soit un test ou non.
      0 => FAUX, tout autre valeur numérique => VRAI

      =SI(A1;...
      est équivalent à :
      =SI(A1 <> 0;...

      Là, en l'occurrence, il faut bien un test pour contrôler la valeur d'erreur si non trouvé.
      Avec esterreur() ou bien nb.si(), sans fichier je n'approfondirais pas plus.

      eric
  2. Merci je ne sais pas pourquoi mais j'avais déjà essayer et javais eu une erreur surement une faute de frappe !

    Merci beaucoup !
    1. Contributeur
      Bonjour
      je suis un peu surpris que l'on utilise un code EQUIV pour détecter si la valeur d'une seule cellule est présente dans une seule cellule .

      Qu'amène cette formulation par rapport à:

      =SI(B6=Serveur!B3;Serveur!B3;SI(B6=Serveur!C3;Serveur!C3;SI(B6=Serveur!D3;Serveur!D3)))

      crdlmnt
      1. Rien a se niveaux la j'étais reparti d'une ancienne fonction.

        Car au début j'avais fais une erreur de syntaxe basique ( sans la voir ) donc suite a ce problème j'avais cherché une alternative.

        Je suis désole d'avoir poser une question aussi simple pour une simple erreur de syntaxe !