Comment effectuer une recherche VLOOKUP et concaténer plusieurs valeurs correspondantes dans Excel ?
Lorsque vous utilisez VLOOKUP dans Excel, la fonction retourne généralement uniquement la première valeur correspondante qu’elle trouve pour un critère de recherche donné. Cependant, il existe de nombreux cas courants où vous pourriez avoir besoin de récupérer et combiner toutes les valeurs correspondantes associées à une clé particulière, comme lister tous les étudiants d'une classe ou tous les produits associés à une certaine catégorie. Comme la fonction VLOOKUP standard est limitée à cet égard, vous pourriez vous demander comment parvenir à rechercher et concaténer plusieurs résultats correspondants dans une seule cellule. Ci-dessous, nous explorerons plusieurs méthodes pratiques et efficaces pour accomplir cette tâche, adaptées aux différentes versions d'Excel et aux préférences des utilisateurs.

Recherche VLOOKUP et concaténation de plusieurs valeurs correspondantes dans Excel
Recherche VLOOKUP et concaténation de plusieurs valeurs correspondantes avec les fonctions TEXTJOIN et FILTER
Si vous utilisez Excel 365 ou Excel 2021, la combinaison des fonctions TEXTJOIN et FILTER offre une approche efficace basée sur des formules pour effectuer une recherche VLOOKUP et concaténer toutes les valeurs correspondantes. Cette solution est particulièrement adaptée aux ensembles de données dynamiques et mis à jour, car elle actualisera automatiquement le résultat lorsque les données sources changent. Elle est mieux appliquée lorsque votre version d’Excel prend en charge la fonction FILTER, qui est exclusive aux versions récentes d’Office.
Dans la cellule cible, entrez la formule suivante, puis faites glisser la formule vers le bas si vous souhaitez l'appliquer à d'autres lignes également. Toutes les valeurs correspondantes sont extraites et combinées dans une seule cellule. Voir capture d'écran :
=TEXTJOIN(", ", TRUE, FILTER($B$2:$B$16, $A$2:$A$16=D2, ""))
- FILTER($B$2:$B$16, $A$2:$A$16=D2, ""): Cette partie de la formule vérifie chaque valeur dans $A$2:$A$16 ; si elle correspond à la valeur dans D2, la valeur correspondante dans $B$2:$B$16 sera incluse dans le tableau des résultats.
- $B$2:$B$16 : La plage à partir de laquelle les valeurs correspondantes seront extraites.
- $A$2:$A$16=D2 : La condition selon laquelle les valeurs sont sélectionnées - seules les lignes où $A$2:$A$16 est égal au contenu de D2 seront traitées.
- TEXTJOIN(", ", TRUE, ...): Cette fonction prend la sortie de la fonction FILTER (un tableau de correspondances) et les concatène en une chaîne de texte unique, séparée par le délimiteur spécifié (virgule et espace), tout en ignorant automatiquement les entrées vides.
- ", ": Définit la virgule et l'espace comme séparateur; vous pouvez modifier ce symbole selon vos besoins, par exemple utiliser des points-virgules ou des sauts de ligne.
- TRUE : Assure que les cellules vides sont ignorées dans le processus de combinaison, afin d'obtenir une sortie soigneusement formatée.
Remarque spéciale : Cette méthode nécessite Excel 365 ou 2021 et ne fonctionne pas dans les versions plus anciennes (par exemple, Excel 2019, 2016, ou antérieur). Vérifiez toujours votre version d’Excel avant de l'appliquer.
Astuce : Si votre valeur de recherche (par exemple, D2) change ou si des éléments correspondants supplémentaires sont ajoutés à la plage de données, le résultat se met à jour automatiquement sans aucune étape supplémentaire nécessaire.
Limitations potentielles : Sur des jeux de données très volumineux, le temps de calcul de la formule peut augmenter. De plus, les utilisateurs doivent s'assurer qu'il n'y a pas de cellules fusionnées dans les plages de recherche ou de résultats, car celles-ci peuvent provoquer des erreurs de formule.
Recherche VLOOKUP et concaténation de plusieurs valeurs correspondantes avec Kutools pour Excel
Si vous trouvez que les méthodes de formules intégrées sont difficiles ou que votre version d’Excel ne prend pas en charge les fonctions avancées comme TEXTJOIN et FILTER, Kutools pour Excel offre une solution graphique conviviale. La fonctionnalité Recherche un-à-plusieurs de Kutools vous permet de rechercher et concaténer plusieurs résultats correspondants en quelques étapes seulement, ce qui la rend adaptée aussi bien pour les débutants que pour les utilisateurs avancés. Avec Kutools, il n'est pas nécessaire d'écrire des formules ou des codes compliqués, et c'est particulièrement pratique lorsqu'il s'agit de grands ensembles de données variables nécessitant des recherches et des agrégations répétées.
Après avoir installé Kutools pour Excel, suivez les étapes ci-dessous :
Cliquez sur Kutools > Super RECHERCHEV > Recherche un-à-plusieurs (retourner plusieurs résultats) pour ouvrir la boîte de dialogue de configuration. Dans cette boîte de dialogue, vous pouvez rapidement configurer vos paramètres de recherche et de sortie en suivant les étapes suivantes :
- Sélectionnez vos cellules cibles de sortie pour les résultats concaténés, ainsi que les cellules contenant les valeurs que vous souhaitez rechercher ;
- Indiquez la plage du tableau qui contient à la fois la clé de recherche et les colonnes de résultats ;
- Précisez quelle colonne contient les clés de recherche (Colonne Clé) et la colonne dont les valeurs seront concaténées (Colonne de Retour) ;
- Cliquez sur le bouton OK pour confirmer vos paramètres et traiter les données.
Résultat: Kutools affichera désormais toutes les valeurs correspondantes et concaténées dans votre cellule de sortie sélectionnée. Voir capture d'écran :
Cette méthode est fortement recommandée pour ceux qui préfèrent travailler depuis l'interface Excel sans formules complexes ou code. Elle réduit également la probabilité d'erreurs de formule et améliore la productivité dans la gestion des tâches de recherche et de concaténation répétitives.
Recherche VLOOKUP et concaténation de plusieurs valeurs correspondantes avec une Fonction Définie par l'Utilisateur
Pour les utilisateurs qui maîtrisent VBA (Visual Basic pour Applications), ou ceux qui utilisent des versions plus anciennes d’Excel qui manquent de support pour les tableaux dynamiques ou la fonction FILTER, vous pouvez créer une Fonction Définie par l'Utilisateur (UDF) personnalisée pour réaliser une concaténation flexible de plusieurs résultats. Cette méthode est universellement compatible avec toutes les versions d'Excel et peut être adaptée à des symboles de séparation ou conditions particulières.
1. Maintenez les touches ALT + F11 enfoncées pour ouvrir la fenêtre Microsoft Visual Basic pour Applications.
2. Cliquez sur Insertion > Module, puis collez le code suivant dans la Fenêtre Module.
Code VBA : Recherche VLOOKUP et concaténation de plusieurs valeurs correspondantes dans une cellule
Function ConcatenateMatches(LookupValue As String, LookupRange As Range, ReturnRange As Range, Optional Delimiter As String = ", ") As String
'Updateby Extendoffice
Dim Cell As Range
Dim Result As String
Result = ""
For Each Cell In LookupRange
If Cell.Value = LookupValue Then
Result = Result & Cell.Offset(0, ReturnRange.Column - LookupRange.Column).Value & Delimiter
End If
Next Cell
If Result <> "" Then
Result = Left(Result, Len(Result) - Len(Delimiter))
End If
ConcatenateMatches = Result
End Function
3. Enregistrez et fermez l'éditeur VBA. Retournez à votre feuille de calcul, et utilisez cette UDF en entrant la formule : =ConcatenateMatches(D2, $A$2:$A$16, $B$2:$B$16) dans une cellule vide où vous souhaitez obtenir votre résultat. Faites glisser la poignée de remplissage vers le bas pour copier la formule dans d'autres cellules si nécessaire. Toutes les valeurs correspondantes basées sur une valeur de recherche spécifique seront retournées et concaténées dans une seule cellule, séparées par une virgule et un espace. Voir capture d'écran :
- D2 : La valeur de recherche à faire correspondre dans votre ensemble de données (LookupValue).
- A2:A16 : La plage où la fonction recherche la valeur de recherche (LookupRange).
- B2:B16 : La plage contenant les valeurs à concaténer lorsque la valeur de recherche correspond (ReturnRange).
Recherche VLOOKUP et concaténation de plusieurs valeurs correspondantes avec du code VBA
Pour les scénarios nécessitant une utilisation répétitive ou pour ceux souhaitant éviter les fonctions personnalisées dans les cellules de la feuille de calcul, vous pouvez utiliser une macro VBA prête à l'emploi pour concaténer directement les résultats. Cette méthode fonctionne bien dans des environnements partagés où tous les utilisateurs n'ont peut-être pas la même version ou les mêmes add-ins.
1. Cliquez sur Outils de développement > Visual Basic pour ouvrir l'éditeur VBA.
2. Dans la fenêtre VBA, cliquez sur Insertion > Module, puis collez ce code dans le module :
Sub VLookupAndConcatenate()
Dim ws As Worksheet
Dim dataRange As Range, lookupRange As Range, resultRange As Range
Dim dict As Object
Dim i As Long, lastRow As Long
Dim lookupValue As Variant, result As String
Dim delimiter As String
delimiter = ", "
Set dict = CreateObject("Scripting.Dictionary")
Set ws = ActiveSheet
On Error Resume Next
Set dataRange = Application.InputBox( _
Prompt:="Please select the data range (contains lookup column and result column)", _
Title:="Select Data Range", _
Type:=8)
On Error GoTo 0
If dataRange Is Nothing Then Exit Sub
On Error Resume Next
Set lookupRange = Application.InputBox( _
Prompt:="Please select the lookup range (single column)", _
Title:="Select Lookup Range", _
Type:=8)
On Error GoTo 0
If lookupRange Is Nothing Then Exit Sub
On Error Resume Next
Set resultRange = Application.InputBox( _
Prompt:="Please select the starting cell for results output", _
Title:="Select Output Location", _
Type:=8)
On Error GoTo 0
If resultRange Is Nothing Then Exit Sub
resultRange.Resize(lookupRange.Rows.Count, 1).ClearContents
For i = 1 To dataRange.Rows.Count
lookupValue = dataRange.Cells(i, 1).Value
If Not dict.Exists(lookupValue) Then
dict.Add lookupValue, dataRange.Cells(i, 2).Value
Else
dict(lookupValue) = dict(lookupValue) & delimiter & dataRange.Cells(i, 2).Value
End If
Next i
For i = 1 To lookupRange.Rows.Count
lookupValue = lookupRange.Cells(i, 1).Value
If dict.Exists(lookupValue) Then
resultRange.Cells(i, 1).Value = dict(lookupValue)
Else
resultRange.Cells(i, 1).Value = "Not Found"
End If
Next i
MsgBox "Operation completed! Processed " & lookupRange.Rows.Count & " lookup values.", vbInformation
End Sub
3. Cliquez sur le bouton pour exécuter la macro. Les boîtes de dialogue vous inviteront à sélectionner votre plage de données, votre plage de recherche, et votre plage de résultats. Le résultat concaténé est ensuite affiché directement dans les cellules de sortie sélectionnées.
Cette approche par macro est particulièrement utile si vous effectuez fréquemment des recherches de concaténation multiples avec différentes valeurs, car elle évite d'encombrer la feuille de calcul avec des appels de fonction définie par l'utilisateur (UDF).
Vous pouvez facilement ajuster le délimiteur dans le code si nécessaire, et étendre la macro pour afficher les résultats dans une cellule ou un fichier selon votre flux de travail.
La concaténation de plusieurs valeurs correspondantes dans Excel est possible à l'aide de diverses approches, chacune ayant des avantages spécifiques selon votre situation. Que vous choisissiez des formules de tableaux dynamiques, des add-ins comme Kutools pour Excel ou des méthodes basées sur VBA, vous améliorerez votre capacité à analyser et afficher des données groupées de manière efficace. Selon la taille et la complexité de votre jeu de données, considérez quelle approche offre les meilleures performances et facilité de maintenance pour vous ou votre équipe. Dans les opérations quotidiennes, vérifiez la cohérence des données, évitez les cellules fusionnées et vérifiez les plages de référence pour de meilleurs résultats. Si vous rencontrez des erreurs dans les calculs de formules, revérifiez que vos plages correspondent aux données et que vous utilisez la méthode d'entrée de formule correcte pour votre version d'Excel.
Pour plus de techniques avancées sur Excel et une large gamme de guides pratiques, visitez notre bibliothèque de tutoriels complète.
Meilleurs outils de productivité Office
Dynamisez vos compétences Excel avec Kutools pour Excel et découvrez une efficacité inégalée. Kutools pour Excel propose plus de300 fonctionnalités avancées pour booster votre productivité et gagner du temps. Cliquez ici pour obtenir la fonctionnalité la plus essentielle pour vous...
Office Tab apporte une interface à onglets à Office, et facilite grandement votre travail
- Activez la modification et la lecture par onglets dans Word, Excel, PowerPoint, Publisher, Access, Visio et Project.
- Ouvrez et créez plusieurs documents dans de nouveaux onglets de la même fenêtre, au lieu d’ouvrir de nouvelles fenêtres.
- Augmentez votre productivité de50% et réduisez des centaines de clics de souris chaque jour!