Table des matières
L'une des fonctions les plus étonnantes et les plus utilisées d'Excel est la fonction Fonction VLOOKUP Jusqu'à présent, nous avons appris à extraire une seule correspondance d'une plage de cellules à l'aide de cette fonction. Vous pouvez fréquemment rencontrer des scénarios dans lesquels vous devez obtenir toutes les valeurs correspondantes pour un identifiant unique. Dans cet article, nous allons montrer comment vous pouvez extraire plusieurs correspondances d'une plage de cellules à l'aide de la fonction Fonction VLOOKUP dans Excel.
Télécharger le cahier d'exercices
Vous pouvez télécharger le classeur Excel suivant pour mieux comprendre et vous entraîner.
Exécution de Vlookup avec des correspondances multiples.xlsx2 étapes pour effectuer un Vlookup avec des correspondances multiples dans Excel
Ici, nous avons le Records de livres de la librairie Martin Cet ensemble de données contient les Type de livre , Nom du livre et Auteur de certains livres sous les colonnes B , C et D de manière correspondante.
Aujourd'hui, notre objectif est de trouver toutes les correspondances de chaque type de livre à l'aide de l'outil Fonction VLOOKUP Nous allons l'exécuter en deux étapes. Alors, explorons-les une par une.
Ici, nous avons utilisé Microsoft Excel 365 vous pouvez utiliser toute autre version à votre convenance.
📌 Étape 01 : Créer un nom unique pour chaque valeur recherchée
- Au tout début, insérez une nouvelle colonne avec le titre Colonne d'aide à gauche de la colonne de consultation Type de livre et saisissez cette formule dans la cellule B5 .
=C5&COUNTIF(C5:$C$25,C5)
Répartition des formules - COUNTIF(C5:$C$25,C5) renvoie le nombre total de cellules dans la plage C5:C25 ( Type de livre ) qui contiennent la valeur dans la cellule C5 ( Roman ). Voir le Fonction COUNTIF pour les détails.
- En d'autres termes, le nombre de romans qu'il y a. C'est... 7 .
- C5&COUNTIF(C5:$C$25,C5) concatène la valeur dans la cellule C5 ( Roman ) avec elle.
- Il retourne donc Novel7 .
Lorsque l'on fait glisser le Poignée de remplissage outil, C5 incrémente un par un, comme C5 , C6 , C7 ... mais C25 reste constant. Par conséquent, pour chaque Type de livre les anciens noms sont exclus et un nouveau nom est généré.
Par exemple, dans le cas des romans, Novel1 à Novel7 sont générés, et il en va de même pour Poésie et d'autres types de livres.
- Ensuite, appuyez sur ENTER .
- Après cela, amenez le curseur dans le coin inférieur droit de la cellule B5 et ça aura l'air d'un plus (+) signe. En fait, c'est le Poignée de remplissage outil.
- Maintenant, double-cliquez dessus.
Il copie cette formule dans le reste des cellules. Vous trouverez toutes les valeurs de recherche fournies avec un nom unique, par exemple Novel1 , Roman2..., Poésie1 , Poésie2... etc.
📌 Étape 02 : Utilisation de la fonction VLOOKUP
- Tout d'abord, créez une nouvelle colonne avec En-tête de colonne comme valeur de référence.
- Ensuite, insérez la formule suivante dans la cellule G5 qui est la première cellule de cette colonne.
=VLOOKUP(G$4&ROW($A$1:INDIRECT("A"&COUNTIF($C$5:$C$25,G$4))),$B$5:$E$25,3,FALSE)
Répartition des formules - COUNTIF($C$5:$C$25,G$4) indique combien de cellules de la plage C5:C25 ( Type de livre ) contient la valeur de la cellule G4 ( Roman ).
- En d'autres termes, le nombre de romans qu'il y a au total. Il s'agit de 7 .
Nous avons utilisé la référence absolue de la cellule de la plage C5:C25 ( $C$5:$C$25 ) car nous voulons qu'elle reste inchangée si nous copions la formule dans n'importe quelle cellule.
- INDIRECT("A"&COUNTIF($C$5:$C$25,G$4)) devient INDIRECT("A"&7) et renvoie la référence de la cellule A7 Voir le Fonction INDIRECTE pour les détails.
- ROW($A$1:INDIRECT("A"&COUNTIF($C$5:$C$25,G$4))) devient maintenant ROW(A1:A7) Voir le Fonction ROW pour les détails.
- Elle renvoie un tableau de 1 à 7 comme {1, 2, 3, 4, 5, 6, 7} .
Nous avons utilisé $A$1 car nous ne voulons pas qu'elle change si nous copions la formule dans une autre cellule.
- G$4&ROW($A$1:INDIRECT("A"&COUNTIF($C$5:$C$25,G$4))) concatène maintenant la valeur dans la cellule G4 ( Roman ) avec le tableau retourné par la méthode Fonction ROW et renvoie un autre tableau.
- Il retourne donc {Novel1, Novel2, ..., Novel7} .
- VLOOKUP(G$4&ROW($A$1:INDIRECT("A"&COUNTIF($C$5:$C$25,G$4))),$B$5:$E$25,3,FALSE) devient VLOOKUP({Novel1, Novel2, ..., Novel7},$B$5:$E$25,3,FALSE) .
Il recherche chaque valeur du tableau {Novel1, Novel2, ... Novel7} dans la colonne de consultation B .
Ensuite, il renvoie le nom correspondant du roman à partir de la base de données de l'UE. 3ème (comme la colonne col_index_num est 3 On obtient ainsi une liste de tous les romans.
- Comme d'habitude, appuyez sur la touche ENTER clé.
Note : C'est une formule de tableau. N'oubliez donc pas d'appuyer sur Ctrl + Shift + Enter sauf si vous êtes dans Excel 365 .
Et pour l'autre Types de livres ,
- Dans un premier temps, insérez leurs noms côte à côte en tant que En-têtes de colonne et faites glisser le Poignée de remplissage .
Lire la suite : VLOOKUP INDIRECT dans Excel
Lectures similaires
- VLOOKUP ne fonctionne pas (8 raisons & ; Solutions)
- Excel LOOKUP vs VLOOKUP : avec 3 exemples
- Pourquoi VLOOKUP renvoie #N/A alors qu'il existe une correspondance (5 Causes & Solutions)
- Utiliser VLOOKUP avec plusieurs critères dans Excel (6 méthodes + alternatives)
- Excel VLOOKUP pour trouver la dernière valeur dans une colonne (avec alternatives)
Autres façons de faire un Vlookup avec des correspondances multiples dans Excel
Si la méthode précédente vous semble hasardeuse, ne vous inquiétez pas, d'autres options sont disponibles.
1. utilisation de la fonction FILTRE
Il s'agit en effet de la méthode la plus simple. Ici, nous n'utiliserons que la fonction Fonction FILTRE Suivez ces étapes simples.
📌 Des pas :
- Tout d'abord, notez les Type de livre comme le En-tête de colonne et saisissez la formule suivante dans la cellule F5 .
=FILTRE($C$5:$C$25,$B$5:$B$25=F$4)
Répartition des formules Ici,
- $C$5:$C$25 ( Nom du livre ) est le lookup_array Nous cherchons les noms des livres. Utilisez le vôtre.
- $B$5:$B$25 ( Type de livre ) est le tableau de correspondance Nous voulons faire correspondre les types de livres. Vous utilisez le vôtre en conséquence.
- F4 ( Roman ) est le valeur_correspondante Nous voulons correspondre aux romans. Vous l'utilisez en conséquence.
- Ensuite, appuyez sur ENTER .
Maintenant, si vous voulez le Noms de livres de tous les Types de livres ,
- Initialement, insérez leurs noms en tant que En-têtes de colonne côte à côte, puis faites glisser les Poignée de remplissage outil.
2. application de la combinaison des fonctions INDEX, SMALL et ROWS (compatible avec les anciennes versions d'Excel)
Le site Fonction FILTRE est uniquement disponible dans Office 365 Donc, si vous utilisez l'ancienne version d'Excel, ne vous inquiétez pas. Nous avons une autre solution pour vous. C'est simple et facile, suivez-nous.
📌 Des pas :
- Principalement, insérer le Type de livre comme le En-tête de colonne en cellule F4 et saisissez cette formule dans la cellule F5 .
=IFERROR(INDEX($C$5:$C$25,(SMALL(IF($B$5:$B$25=F4,ROW(B5:B25)-ROWS(B1:B4),""),(ROW(B5:B25)-ROWS(B1:B4))))),"")
Répartition des formules - ROW(B5:B25) renvoie un tableau de {5, 6, 7, ..., 25} . et ROWS(B1:B4) renvoie à 4 . donc RANGÉE(B5:B25)-RANGÉES(B1:B4) renvoie un tableau de {1, 2, 3, ..., 21} Voir le ROW et ROWS pour plus de détails.
- IF($B$5:$B$25=F4,ROW(B5:B25)-ROWS(B1:B4),"") renvoie le numéro correspondant du tableau {1, 2, 3, ..., 21} la valeur dans la cellule F4 ( Roman ) correspond à la valeur dans n'importe quelle cellule de la plage B5:B25 ( Type de livre ), sinon elle renvoie une cellule vierge. Voir la fonction Fonction IF pour les détails.
- SMALL(IF($B$5:$B$25=F4,ROW(B5:B25)-ROWS(B1:B4),""),(ROW(B5:B25)-ROWS(B1:B4)))) devient SMALL({1, ..., 3, ..., 6, ..., 20, ...},{1, 2, 3, 4, ...., 21}) et renvoie d'abord les chiffres, puis #NUM ! dans les cellules vides. Fonction SMALL pour les détails.
- INDEX($C$5:$C$25,(SMALL(IF($B$5:$B$25=F4,ROW(B5:B25)-ROWS(B1:B4),""),(ROW(B5:B25)-ROWS(B1:B4))))) devient INDEX($C$5:$C$25,{1,3,6,11,...,#NUM!}) et renvoie le Noms de livres (Nom des romans) et #NUM ! erreurs. Voir le Fonction INDEX pour les détails.
- Enfin, nous avons enveloppé la formule dans un Fonction IFERROR pour transformer les erreurs en cellules vides.
- Après cela, appuyez sur ENTER .
- Maintenant, si tu veux, insère l'autre Types de livres comme En-têtes de colonne et faites glisser le Poignée de remplissage Vous obtiendrez les livres des autres types de livres.
3. Vlookup avec des correspondances multiples et retour des résultats dans une rangée
Dans les méthodes précédentes, nous avons obtenu les résultats dans des colonnes verticales. Mais si nous voulons obtenir les valeurs dans une ligne, comment pouvons-nous le faire ? Ici, nous obtiendrons les valeurs suivantes Auteur des noms pour différents Types de livres Il suffit de suivre attentivement les étapes ci-dessous.
📌 Des pas :
- Dans un premier temps, allez dans la cellule G5 et écrivez la formule ci-dessous.
=IFERROR(INDEX($D$5:$D$19,SMALL(IF($F5=$B$5:$B$19,ROW($D$5:$D$19)-4,""),COLUMN()-6)),"")
Cette formule est un peu similaire à la formule précédente. Donc, si vous avez des difficultés à comprendre cette formule, veuillez consulter l'article suivant explication précédente .
- Ensuite, appuyez sur le bouton ENTER clé.
Mais il y a d'autres auteurs qui ont des romans dans cet ensemble de données. Alors, comment pouvons-nous les obtenir ?
Il suffit de faire glisser le Poignée de remplissage jusqu'à la cellule K5 pour obtenir l'autre Auteurs de Roman De plus, il faut traîner le Poignée de remplissage de l'outil à la cellule K7 pour obtenir les noms des Auteurs pour différents types de livres. Voir l'image ci-dessous pour plus de clarté.
Comment faire un Vlookup pour de nombreuses correspondances avec plusieurs critères ?
Dans nos exemples précédents, nous avons trouvé les valeurs pour des critères uniques. Par exemple, nous avons obtenu les titres des livres pour un type de livre spécifique. Mais ici, nous allons impliquer des critères multiples. Nous allons chercher les éléments suivants Romans de Charles Dickens en utilisant cette méthode. Voyons-la en action.
📌 Des pas :
- Avant toute chose, sélectionnez la cellule H5 et collez la formule suivante.
=IFERROR(INDEX($C$5:$C$25,SMALL(IF(1=((--($F$5=$B$5:$B$25))*(--($G$5=$D$5:$D$25))),ROW($C$5:$C$25)-4,""),ROW()-4)),"")
- Ensuite, appuyez sur ENTER .
Comment faire un Vlookup et renvoyer plusieurs correspondances dans une cellule ?
Dans les approches précédentes, nous avons obtenu les valeurs dans différentes cellules. Mais nous allons montrer comment nous pouvons obtenir des résultats dans une seule cellule. Donc, sans plus attendre, plongeons-y !
📌 Des pas :
- Principalement, aller à la cellule G5 et entrez la formule ci-dessous.
=TEXTJOIN(", ",TRUE,IF($F$5=$B$5:$B$25,C5:C25,""))
Ici, le Fonction IF obtient la valeur de l'intervalle C5:C25 où les valeurs correspondantes dans l'intervalle B5:B25 correspond à la valeur de la cellule F5 Ensuite, le Fonction TEXTJOIN combine les valeurs du tableau avec une virgule comme délimiteur.
- Ensuite, appuyez sur ENTER .
Lire la suite : Fonction INDEX MATCH vs VLOOKUP (9 exemples)
Conclusion
Cet article explique comment faire un vlookup avec plusieurs correspondances dans Excel de manière simple et concise. N'oubliez pas de télécharger le fichier Practice. Merci d'avoir lu cet article. Nous espérons qu'il vous a été utile. Si vous avez des questions ou des suggestions, n'hésitez pas à nous en faire part dans la section des commentaires. Visitez notre site Web, ExcelWIKI un fournisseur unique de solutions Excel, pour en savoir plus.