RECHERCHEV réutilisable (VLOOKUP)

Table des matières

Nous avons une liste de commandes avec des numéros et des noms de marchandises. Je voudrais, par exemple, retirer du tableau par numéro de commande toutes les marchandises qui y sont incluses. Plus ou moins comme ça :

 

Fonction merveilleuse RECHERCHEV (RECHERCHEV) dans une telle situation, cela n'aidera que partiellement, car il est capable d'extraire des données uniquement par la première correspondance trouvée, c'est-à-dire ne nous donnera que Pommes. Pour trouver et extraire tous les éléments du tableau, il est préférable d'utiliser une formule matricielle. Comme celui-ci:

=INDEX(G$$2:$G$16;MOINS(IF($ E $ 2=A2: A16;LINE(B2 : B16)-1;"");LINE()-5))

Il doit être saisi comme suit :

  1. sélectionnez les cellules où les résultats doivent être affichés (dans notre exemple, il s'agit de la plage D6:D20)
  2. entrer (copier la formule dans la première cellule) de la plage
  3. Press Ctrl + Shift + Entrer

Soustraction d'unité dans le fragment CHAINE(B2:B16)-1 est fait à cause de l'en-tête du tableau. Pour la même raison, pour compenser le décalage de la plage résultante par rapport à celle d'origine, le nombre cinq dans le fragment est soustrait CHAÎNE()-5

Pour masquer le #NUM ! erreur qui apparaîtra dans les cellules vides dans la plage résultante D6:D20, vous pouvez utiliser les fonctions de vérification d'erreur IF et EOSH, en remplaçant notre formule par une formule légèrement plus complexe :

=SI(EOSH(ИНДЕКС($B$2:$B$16;НАИМЕНЬШИЙ(ЕСЛИ($E$2=A2:A16;СТРОКА(B2:B16)-1;»»);СТРОКА()-5)));»»;ИНДЕКС($B$2:$B$16;НАИМЕНЬШИЙ(ЕСЛИ($E$2=A2:A16;СТРОКА(B2:B16)-1;»»);СТРОКА()-5)))

Dans Excel 2007, une fonction SIERREUR plus pratique est apparue - elle vous permet de résoudre le problème de manière plus compacte :

=SIERREUR(ИНДЕКС($B$2:$B$16;НАИМЕНЬШИЙ(ЕСЛИ($E$2=A2:A16;СТРОКА(B2:B16)-1;»»);СТРОКА()-5));»»)

PS

Dans la version anglaise d'Excel, ces fonctions ressembleront à ceci :

=INDEX($B$2:$B$16,SMALL(IF($E$2=A2:A16,ROW(B2:B16)-1,»»),ROW()-5))

=IF(ISERR(INDEX($B$2:$B$16,SMALL(IF($E$2=A2:A16,ROW(B2:B16)-1,»»),ROW()-5))),»»,INDEX($B$2:$B$16,SMALL(IF($E$2=A2:A16,ROW(B2:B16)-1,»»),ROW()-5)))

=IFERROR(INDEX($B$2:$B$16,SMALL(IF($E$2=A2:A16,ROW(B2:B16)-1,»»),ROW()-5)),»»)

  • Utilisation de la fonction VLOOKUP pour rechercher des données dans une table
  • Une version améliorée de la fonction VLOOKUP2 qui peut rechercher dans n'importe quelle colonne et pas seulement la première valeur
  • Fonctions VLOOKUP2 et VLOOKUP3 du module complémentaire PLEX
  • Que sont les formules matricielles et à quoi servent-elles ?

 

Soyez sympa! Laissez un commentaire