Passer au contenu principal

Comment vlookup pour renvoyer plusieurs valeurs dans une cellule dans Excel?

Normalement, dans Excel, lorsque vous utilisez la fonction RECHERCHEV, s'il existe plusieurs valeurs correspondant aux critères, vous pouvez simplement obtenir la première. Mais, parfois, vous souhaitez renvoyer toutes les valeurs correspondantes qui répondent aux critères dans une cellule comme illustré ci-dessous, comment pouvez-vous le résoudre?

Vlookup pour renvoyer plusieurs valeurs dans une cellule avec la fonction TEXTJOIN (Excel 2019 et Office 365)

Vlookup pour renvoyer plusieurs valeurs dans une cellule avec la fonction définie par l'utilisateur

Vlookup pour renvoyer plusieurs valeurs dans une cellule avec une fonctionnalité utile


Vlookup pour renvoyer plusieurs valeurs dans une cellule avec la fonction TEXTJOIN (Excel 2019 et Office 365)

Si vous disposez de la version supérieure d'Excel telle que Excel 2019 et Office 365, il existe une nouvelle fonction - TEXTEJOINDRE, avec cette fonction puissante, vous pouvez rapidement vlookup et renvoyer toutes les valeurs correspondantes dans une cellule.

Vlookup pour renvoyer toutes les valeurs correspondantes dans une cellule

Veuillez appliquer la formule ci-dessous dans une cellule vide où vous souhaitez mettre le résultat, puis appuyez sur Ctrl + Maj + Entrée clés ensemble pour obtenir le premier résultat, puis faites glisser la poignée de remplissage vers la cellule dans laquelle vous souhaitez utiliser cette formule, et vous obtiendrez toutes les valeurs correspondantes, comme illustré ci-dessous:

=TEXTJOIN(",",TRUE,IF($A$2:$A$11=E2,$C$2:$C$11,""))

Remarque: Dans la formule ci-dessus, A2: A11 la plage de recherche contient-elle les données de recherche, E2 est la valeur de recherche, C2: C11 est la plage de données à partir de laquelle vous souhaitez renvoyer les valeurs correspondantes, ","est le séparateur pour séparer les enregistrements multiples.

Vlookup pour renvoyer toutes les valeurs correspondantes sans doublons dans une cellule

Si vous souhaitez renvoyer toutes les valeurs correspondantes basées sur les données de recherche sans doublons, la formule ci-dessous peut vous aider.

Veuillez copier et coller la formule suivante dans une cellule vide, puis appuyez sur Ctrl + Maj + Entrée clés ensemble pour obtenir le premier résultat, puis copiez cette formule pour remplir d'autres cellules, et vous obtiendrez toutes les valeurs correspondantes sans les dulpiquées, comme illustré ci-dessous:

=TEXTJOIN(",", TRUE, IF(IFERROR(MATCH($C$2:$C$11, IF(E2=$A$2:$A$11, $C$2:$C$11, ""), 0),"")=MATCH(ROW($C$2:$C$11), ROW($C$2:$C$11)), $C$2:$C$11, ""))

Remarque: Dans la formule ci-dessus, A2: A11 la plage de recherche contient-elle les données de recherche, E2 est la valeur de recherche, C2: C11 est la plage de données à partir de laquelle vous souhaitez renvoyer les valeurs correspondantes, ","est le séparateur pour séparer les enregistrements multiples.

Vlookup pour renvoyer plusieurs valeurs dans une cellule avec la fonction définie par l'utilisateur

La fonction TEXTJOIN ci-dessus n'est disponible que pour Excel 2019 et Office 365, si vous avez d'autres versions d'Excel inférieures, vous devez utiliser certains codes pour terminer cette tâche.

Vlookup pour renvoyer toutes les valeurs correspondantes dans une cellule

1. Maintenez le ALT + F11 clés, et il ouvre le Microsoft Visual Basic pour applications fenêtre.

2Cliquez sur insérer > Moduleet collez le code suivant dans le Fenêtre du module.

Code VBA: Vlookup pour renvoyer plusieurs valeurs dans une cellule

Function ConcatenateIf(CriteriaRange As Range, Condition As Variant, ConcatenateRange As Range, Optional Separator As String = ",") As Variant
'Updateby Extendoffice
Dim xResult As String
On Error Resume Next
If CriteriaRange.Count <> ConcatenateRange.Count Then
    ConcatenateIf = CVErr(xlErrRef)
    Exit Function
End If
For i = 1 To CriteriaRange.Count
    If CriteriaRange.Cells(i).Value = Condition Then
        xResult = xResult & Separator & ConcatenateRange.Cells(i).Value
    End If
Next i
If xResult <> "" Then
    xResult = VBA.Mid(xResult, VBA.Len(Separator) + 1)
End If
ConcatenateIf = xResult
Exit Function
End Function

3. Ensuite, enregistrez et fermez ce code, revenez à la feuille de calcul et entrez cette formule: =CONCATENATEIF($A$2:$A$11, E2, $C$2:$C$11, ", ") dans une cellule vide spécifique où vous souhaitez placer le résultat, puis faites glisser la poignée de recopie vers le bas pour obtenir toutes les valeurs correspondantes dans une cellule souhaitée, voir capture d'écran:

Remarque: Dans la formule ci-dessus, A2: A11 la plage de recherche contient-elle les données de recherche, E2 est la valeur de recherche, C2: C11 est la plage de données à partir de laquelle vous souhaitez renvoyer les valeurs correspondantes, ","est le séparateur pour séparer les enregistrements multiples.

Vlookup pour renvoyer toutes les valeurs correspondantes sans doublons dans une cellule

Pour ignorer les doublons dans les valeurs correspondantes renvoyées, veuillez utiliser le code ci-dessous.

1. Maintenez le Alt + F11 clés pour ouvrir le Microsoft Visual Basic pour applications fenêtre.

2Cliquez sur insérer > Moduleet collez le code suivant dans le Fenêtre du module.

Code VBA: Vlookup et retourne plusieurs valeurs correspondantes uniques dans une cellule

Function MultipleLookupNoRept(Lookupvalue As String, LookupRange As Range, ColumnNumber As Integer)
'Updateby Extendoffice
    Dim xDic As New Dictionary
    Dim xRows As Long
    Dim xStr As String
    Dim i As Long
    On Error Resume Next
    xRows = LookupRange.Rows.Count
    For i = 1 To xRows
        If LookupRange.Columns(1).Cells(i).Value = Lookupvalue Then
            xDic.Add LookupRange.Columns(ColumnNumber).Cells(i).Value, ""
        End If
    Next
    xStr = ""
    MultipleLookupNoRept = xStr
    If xDic.Count > 0 Then
        For i = 0 To xDic.Count - 1
            xStr = xStr & xDic.Keys(i) & ","
        Next
        MultipleLookupNoRept = Left(xStr, Len(xStr) - 1)
    End If
End Function

3. Après avoir inséré le code, cliquez sur Outils > Bibliographie en plein air Microsoft Visual Basic pour applications fenêtre, puis, dans le sauté Références - VBAProject boîte de dialogue, cochez Exécution de scripts Microsoft option dans la Références disponibles zone de liste, voir les captures d'écran:

4. Puis clique OK pour fermer la boîte de dialogue, enregistrez et fermez la fenêtre de code, revenez à la feuille de calcul et entrez cette formule: =MultipleLookupNoRept(E2,$A$2:$C$11,3) into a blank cell where you want to output the result, and then drag the fill hanlde down to get all matching values, see screenshot:

Remarque: Dans la formule ci-dessus, A2: C11 est la plage de données que vous souhaitez utiliser, E2 est la valeur de recherche, le nombre 3 est le numéro de colonne contenant les valeurs renvoyées.

Vlookup pour renvoyer plusieurs valeurs dans une cellule avec une fonctionnalité utile

 Si vous avez notre Kutools for Excel, Avec son Lignes de combinaison avancées fonctionnalité, vous pouvez rapidement fusionner ou combiner les lignes en fonction de la même valeur et effectuer certains calculs selon vos besoins.

Remarque:Appliquer cette Lignes de combinaison avancées, tout d'abord, vous devez télécharger le Kutools for Excel, puis appliquez la fonction rapidement et facilement.

Après l'installation de Kutools for Excel, procédez comme suit:

1. Sélectionnez la plage de données dans laquelle vous souhaitez combiner les données d'une colonne en fonction d'une autre colonne.

2Cliquez sur Kutools > Fusionner et fractionner > Lignes de combinaison avancées, voir capture d'écran:

3. Dans le sauté Lignes de combinaison avancées boite de dialogue:

  • Cliquez sur le nom de la colonne clé à combiner en fonction, puis cliquez sur Clé primaire
  • Cliquez ensuite sur une autre colonne pour laquelle vous souhaitez combiner ses données en fonction de la colonne clé, puis cliquez sur Combiner pour choisir un séparateur pour séparer les données combinées.

4. Puis clique OK bouton, et vous obtiendrez les résultats suivants:

Téléchargez et essayez gratuitement Kutools for Excel Now!


Articles plus relatifs:

  • Fonction RECHERCHEV avec quelques exemples basiques et avancés
  • Dans Excel, la fonction RECHERCHEV est une fonction puissante pour la plupart des utilisateurs d'Excel, qui est utilisée pour rechercher une valeur dans la partie la plus à gauche de la plage de données et renvoyer une valeur correspondante dans la même ligne à partir d'une colonne que vous avez spécifiée. Ce didacticiel explique comment utiliser la fonction RECHERCHEV avec quelques exemples de base et avancés dans Excel.
  • Renvoie plusieurs valeurs correspondantes basées sur un ou plusieurs critères
  • Normalement, rechercher une valeur spécifique et renvoyer l'élément correspondant est facile pour la plupart d'entre nous en utilisant la fonction RECHERCHEV. Mais avez-vous déjà essayé de renvoyer plusieurs valeurs correspondantes basées sur un ou plusieurs critères? Dans cet article, je présenterai quelques formules pour résoudre cette tâche complexe dans Excel.
  • Vlookup et renvoyer plusieurs valeurs verticalement
  • Normalement, vous pouvez utiliser la fonction Vlookup pour obtenir la première valeur correspondante, mais, parfois, vous souhaitez renvoyer tous les enregistrements correspondants en fonction d'un critère spécifique. Cet article, je vais parler de la façon de vlookup et de renvoyer toutes les valeurs correspondantes verticalement, horizontalement ou dans une seule cellule.
  • Vlookup et renvoyer plusieurs valeurs à partir de la liste déroulante
  • Dans Excel, comment pouvez-vous rechercher et renvoyer plusieurs valeurs correspondantes à partir d'une liste déroulante, ce qui signifie que lorsque vous choisissez un élément dans la liste déroulante, toutes ses valeurs relatives sont affichées en même temps. Cet article, je vais vous présenter la solution étape par étape.

Meilleurs outils de productivité bureautique

🤖 Aide à l'IA Kutools: Révolutionner l'analyse des données en s'appuyant sur : Exécution intelligente   |  Générer du code  |  Créer des formules personnalisées  |  Analyser les données et générer des graphiques  |  Invoquer les fonctions Kutools...
Caractéristiques populaires: Rechercher, mettre en évidence ou identifier les doublons   |  Supprimer les lignes vides   |  Combinez des colonnes ou des cellules sans perdre de données   |   Tour sans formule 
Super recherche: VSearchup à critères multiples    VSearch à valeurs multiples  |   Recherche virtuelle sur plusieurs feuilles   |   Recherche floue ....
Liste déroulante avancée: Créez rapidement une liste déroulante   |  Liste déroulante dépendante   |  Liste déroulante à sélection multiple ....
Gestionnaire de colonnes: Ajouter un nombre spécifique de colonnes  |  Déplacer les colonnes  |  Basculer l'état de visibilité des colonnes masquées  |  Comparer les plages et les colonnes 
Caractéristiques en vedette: Mise au point de la grille   |  Voir Design   |   Grande barre de formule    Gestionnaire de classeurs et de feuilles   |  Centre de ressources (Texte automatique)   |  Sélecteur de date   |  Combiner des feuilles de travail   |  Crypter/déchiffrer les cellules    Envoyer des e-mails par liste   |  Super filtre   |   Filtre spécial (filtre gras/italique/barré...) ...
Les 15 meilleurs ensembles d'outils12 Texte Outils (Ajouter du texte, Supprimer les caractères, ...)   |   50+ Graphique Types (Diagramme de Gantt, ...)   |   40+ Pratique Formules (Calculer l'âge en fonction de l'anniversaire, ...)   |   19 Insertion Outils (Insérer le code QR, Insérer une image à partir du chemin, ...)   |   12 Conversion Outils (Nombres en mots, Conversion des devises, ...)   |   7 Fusionner et fractionner Outils (Lignes de combinaison avancées, Cellules divisés, ...)   |   ... et plus

Améliorez vos compétences Excel avec Kutools for Excel et faites l'expérience d'une efficacité comme jamais auparavant. Kutools for Excel offre plus de 300 fonctionnalités avancées pour augmenter la productivité et gagner du temps.  Cliquez ici pour obtenir la fonctionnalité dont vous avez le plus besoin...

Description


Office Tab apporte une interface à onglets à Office et facilite grandement votre travail

  • Activer l'édition 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, plutôt que dans de nouvelles fenêtres.
  • Augmente votre productivité de 50% et réduit des centaines de clics de souris chaque jour!
Comments (43)
No ratings yet. Be the first to rate!
This comment was minimized by the moderator on the site
I have created a problem.
"I" have combined a "Textjoin" end "Vlookup" to return multiple values in to one single cell.
My problem is that the formula have to have an exact value to look for and I want it to lookup an "almost" match or Partial match.

Example: I have made a schedule how we ate going to work and a D1 is working from 07:30-16:00. And to lookup D1 is not the problem, the problem is that my boss sometimes puts other stuff togeather with the D1... Like "D1 +" or "D1 meeting".
Since my formula only lookup "D1" it misses for example the "D1 +".

My formula (that I have gotten from the web) =TEXTJOIN(" och ";SANT;OM($B$3:$B$15=$C$22:$F$22;$A$3:$A$15;""))It´s in swedish so "SANT" is "TRUE" and "OM" is "IF".

How can I make the formula lookup all the cells that have some form of "D1" in it and return all those to the same cell?
No matter if it says "D1 +" or "D1 meeting" or whatever.
The reson I want this, is because the boss always leave "D1" but can add other text behind the "D1"... and just because of that, my boss messes up my formula.
This comment was minimized by the moderator on the site
Hi!
This is a great VBA-Code which could help me a lot.But when I start the Function MultipleLookupNoRept Excel crashs...I´ve got a Dataset with about 6.000 Rows (Excel 2013).... is this too much for the VBA Function?

Thanks!
This comment was minimized by the moderator on the site
Hello Mr.XXL,Sorry to hear that. The row limit for Excel 2013 is 1048576. Therefore, maybe the VBA code is the reason for the crash.
Anyway, I would love to offer you another VBA code for Vlookup To Return All Matching Values Without Duplicates Into One Cell. Please use the VBA code below:
Option Explicit

Function Lookup_concat(Search_string As String, _
Search_in_col As Range, Return_val_col As Range)

Dim i As Long
Dim temp() As Variant
Dim result As String
ReDim temp(0)

For i = 1 To Search_in_col.Count
If Search_in_col.Cells(i, 1) = Search_string Then
temp(UBound(temp)) = Return_val_col.Cells(i, 1).Value
ReDim Preserve temp(UBound(temp) + 1)
End If
Next

If temp(0) <> "" Then
ReDim Preserve temp(UBound(temp) - 1)
Unique temp
For i = LBound(temp) To UBound(temp)
result = result & " " & temp(i)
Next i
Lookup_concat = Trim(result)
Else
Lookup_concat = ""
End If

End Function

Function Unique(tempArray As Variant)

Dim coll As New Collection
Dim Value As Variant

On Error Resume Next
For Each Value In tempArray
If Len(Value) > 0 Then coll.Add Value, CStr(Value)
Next Value
On Error GoTo 0

ReDim tempArray(0)

For Each Value In coll
tempArray(UBound(tempArray)) = Value
ReDim Preserve tempArray(UBound(tempArray) + 1)
Next Value

End Function

After you insert this VBA code in the Module, please type the formula =Lookup_concat(E2,$A$2:$A$14,$C$2:$C$14) into a blank cell where you want to output the result, and then drag the fill hanlde down to get all matching values. Please see the file I uploaded in this comment. Hope it solves your problem. 
Sincerely,Mandy

This comment was minimized by the moderator on the site
Hi, Thanks so much this worked!I used it to pull dates, that populated in the serial number format (<span style="letter-spacing: 0.2px; color: inherit; font-family: inherit; font-style: inherit; font-variant-ligatures: inherit; font-variant-caps: inherit; font-weight: inherit;">Changing the format to short date format using =TEXT(A2,”mm/dd/yy”) OR =DATEVALUE(A2) are not working. Do you have any solutions?</span>
This comment was minimized by the moderator on the site
Thank you for the explanations, however the function 'MultipleLookupNoRept' does not work on my file, could you tell me if an error exists.
This comment was minimized by the moderator on the site
Hi, Hasnae,Please check if you miss the third step -  check Microsoft Scripting Runtime option in the Available References list box.

This comment was minimized by the moderator on the site
Thank you so much for the code. Is there a way I can use the code to look up multiple values from multiple sheets? I tried to combine your function with IFERROR function but it doesn't seem to work.
This comment was minimized by the moderator on the site
Can this be modified to place the sum of those values? Instead of (400 400 400 400 400 400), can it sum them to show (2400)?
This comment was minimized by the moderator on the site
How with HLookUp function?
This comment was minimized by the moderator on the site
thanks for the code. I have modified it to allow you to optionally specify your own separator, Default is " ", if you specify the separator as"#cr" it will insert a CR/LF so the values will be on a separate line in the cell. It only applies the separator if there are multiple values

Function MYVLOOKUP(pValue As String, pWorkRng As Range, pIndex As Long, Optional ByVal pSep As Variant)

' ### Returns multiple values from a table into 1 cell ###

' pValue is the key value to lookup

' WorkRng is the Table you want to look up

' pIndex is the column # for the values to be returned from the pWorkRng

' pSep (optional) is the separator to be used. if omitted then default is a space (it doesn't apply the separator for the 1st entry)

' if the separtor = "#cr" it will separate the values on different line in the cell

Dim rng As Range

Dim sSep As String

Dim xResult As String

Dim Item1 As Boolean

Item1 = True



If IsMissing(pSep) = True Then

sSep = vbCr

Else

If pSep = "#cr" Then

sSep = vbCrLf

Else

sSep = pSep

End If

End If



xResult = ""

For Each rng In pWorkRng

If rng = pValue Then

If Item1 Then

xResult = xResult & rng.Offset(0, pIndex - 1)

Item1 = False

Else

xResult = xResult & sSep & rng.Offset(0, pIndex - 1)

End If

End If

Next

MYVLOOKUP = xResult

End Function
This comment was minimized by the moderator on the site
Thank you for this, the line breaks are what i needed to top this formula off! Question, is there a way to modify the code so that two values are compared? For example, similar to what we see with index and match, can i look for Product and Quantity columns, and based on those parameters it outputs results from the Region Column?
This comment was minimized by the moderator on the site
Thanks a lot for this code, it is very helpful. Does anyone know away to sum the values in the cell to just have at total of them.
Cheers
This comment was minimized by the moderator on the site
Hello, James, to sum values based on the corresponding items, the following article may help you, please chek it:
https://www.extendoffice.com/documents/excel/1268-excel-combine-duplicate-rows-and-sum.html
This comment was minimized by the moderator on the site
I have a server, it has connected with multiple applications. I want to compare compare two column and get the related applications details for that server.

What is the command for that.
There are no comments posted here yet
Load More
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations