Formule VLOOKUP avec conditions

Résolu
Bonjour,

J'ai besoin d'une formule me permettant de trouver des renseignements dans un autre onglet, avec la formule VLOOKUP, mais avec la condition que "si il y a l'info X dans une case de la colonne A, et que dans la case à côté de ce résultat il y a l'info Y"... et c'est là que je bloque.

J'ai essayé de vous faire un fichier d'exemple (>>http://www.cjoint.com/c/EKglsgknp2T<<), mais j'ai l'impression que même la première formule ne fonctionne pas (alors qu'elle fonctionne dans mon fichier d'origine).

J'ai donc une première formule simple, qui ne pose pas problème : =if(isna(vlookup(A2,NR1!B:C,2,False))=true,"",vlookup(A2,NR1!B:C,2,False))

et l'ébauche de la seconde est celle-ci (qui ne fonctionne pas) :

=vlookup(if(AND(NR1!A:A="FR-BE",NR1!B:B=A2))A2,NR1!B:C,2,False)

Une idée ?

Merci d'avance !

1 réponse

  1. Contributeur
    Bonjour
    cette formule matricielle à entrer avec la touche ENTER en maintenant les touches ctrl et shift enfoncées
    elle doit se retrouver automatiquement entre accolades dans la barre de formule:
    En B2, version française à tirer sur le tabmeau:
    =SIERREUR(INDEX('NR1'!$C:$C;EQUIV(B$1&$A2;'NR1'!$A:$A&'NR1'!$B:$B;0));"")

    et sauf erreur en anglais:

    =IFERROR(NR1'!$C:$C;MATCH(B$1&$A2;'NR1'!$A:$A&'NR1'!$B:$B;0));"")

    le code IFERROR (SIERREUR) ne fonctionne qu'à partir de Excel 2007
    il est là pour envoyer une cellule blanche quand la condition n'est pas réalisée
    Pour exel avant 2007:

    =IF(ISERROR(EQUIV(B$1&$A2;'NR1'!$A:$A&'NR1'!$B:$B;0));"";INDEX('NR1'!$C:$C;EQUIV(B$1&$A2;'NR1'!$A:$A&'NR1'!$B:$B;0)))
    toujours en matricielle en respectant bien les positions du signe $ pour pouvoir "tirer" la formule

    crdlmnt

    Errare humanum est, perseverare diabolicum
    0
    1. C'est super, merci ! La formule anglaise marche parfaitement, il manquait juste une parenthèse avant MATCH :D

      Merci beaucoup !!
      0
    2. Contributeur
      @mana...manquait même carrément INDEX! c'est tout moi ça
      bonne route
      crdlmnt
      0