Přejít k hlavnímu obsahu

Jak vlookup vrátit více hodnot v jedné buňce v aplikaci Excel?

Normálně v aplikaci Excel, pokud používáte funkci VLOOKUP, pokud existuje více hodnot, které odpovídají kritériím, můžete získat pouze první. Ale někdy chcete vrátit všechny odpovídající hodnoty, které splňují kritéria, do jedné buňky, jak ukazuje následující snímek obrazovky, jak byste to mohli vyřešit?

Vlookup pro vrácení více hodnot do jedné buňky pomocí funkce TEXTJOIN (Excel 2019 a Office 365)

Vlookup pro vrácení více hodnot do jedné buňky pomocí funkce definované uživatelem

Vlookup pro vrácení více hodnot do jedné buňky s užitečnou funkcí


Vlookup pro vrácení více hodnot do jedné buňky pomocí funkce TEXTJOIN (Excel 2019 a Office 365)

Pokud máte vyšší verzi Excelu, jako je Excel 2019 a Office 365, je tu nová funkce - TEXTJOIN, s touto výkonnou funkcí můžete rychle vlookup a vrátit všechny odpovídající hodnoty do jedné buňky.

Vlookup vrátí všechny odpovídající hodnoty do jedné buňky

Použijte následující vzorec do prázdné buňky, kam chcete umístit výsledek, a stiskněte Ctrl + Shift + Enter společně získáte první výsledek a poté přetáhněte popisovač výplně dolů do buňky, kterou chcete použít tento vzorec, a získáte všechny odpovídající hodnoty, jak je uvedeno níže:

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

Poznámka: Ve výše uvedeném vzorci A2: A11 je rozsah vyhledávání obsahuje data vyhledávání, E2 je vyhledávací hodnota, C2: C11 je rozsah dat, ze kterého chcete vrátit odpovídající hodnoty, “,"je oddělovač pro oddělení více záznamů.

Vlookup vrátí všechny odpovídající hodnoty bez duplikátů do jedné buňky

Pokud chcete vrátit všechny odpovídající hodnoty založené na vyhledávacích datech bez duplikátů, může vám pomoci následující vzorec.

Zkopírujte a vložte následující vzorec do prázdné buňky a stiskněte Ctrl + Shift + Enter klíče společně, abyste získali první výsledek, a poté zkopírujte tento vzorec, abyste vyplnili další buňky, a získáte všechny odpovídající hodnoty bez dulpikátů, jak je uvedeno níže:

=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, ""))

Poznámka: Ve výše uvedeném vzorci A2: A11 je rozsah vyhledávání obsahuje data vyhledávání, E2 je vyhledávací hodnota, C2: C11 je rozsah dat, ze kterého chcete vrátit odpovídající hodnoty, “,"je oddělovač pro oddělení více záznamů.

Vlookup pro vrácení více hodnot do jedné buňky pomocí funkce definované uživatelem

Výše uvedená funkce TEXTJOIN je k dispozici pouze pro Excel 2019 a Office 365, pokud máte jiné nižší verze aplikace Excel, měli byste k dokončení tohoto úkolu použít některé kódy.

Vlookup vrátí všechny odpovídající hodnoty do jedné buňky

1. Podržte ALT + F11 klíče a otevře se Microsoft Visual Basic pro aplikace okno.

2, klikněte Vložit > Modula vložte následující kód do Okno modulu.

Kód VBA: Vlookup pro vrácení více hodnot do jedné buňky

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. Poté tento kód uložte a zavřete, vraťte se do listu a zadejte tento vzorec: =CONCATENATEIF($A$2:$A$11, E2, $C$2:$C$11, ", ") do konkrétní prázdné buňky, kam chcete umístit výsledek, pak přetáhněte úchyt výplně dolů a získejte všechny odpovídající hodnoty v jedné buňce, kterou chcete, viz screenshot:

Poznámka: Ve výše uvedeném vzorci A2: A11 je rozsah vyhledávání obsahuje data vyhledávání, E2 je vyhledávací hodnota, C2: C11 je rozsah dat, ze kterého chcete vrátit odpovídající hodnoty, “,"je oddělovač pro oddělení více záznamů.

Vlookup vrátí všechny odpovídající hodnoty bez duplikátů do jedné buňky

Chcete-li ignorovat duplikáty ve vrácených shodných hodnotách, postupujte podle níže uvedeného kódu.

1. Podržte Alt + F11 klávesy pro otevření Microsoft Visual Basic pro aplikace okno.

2, klikněte Vložit > Modula vložte následující kód do Okno modulu.

Kód VBA: Vlookup a vrácení více jedinečných shodných hodnot do jedné buňky

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. Po vložení kódu klikněte na Tools > Reference v otevřeném Microsoft Visual Basic pro aplikace okno a poté ve vyskakovacím okně Reference - VBAProject v dialogovém okně zaškrtněte Microsoft Scripting Runtime možnost v Dostupné reference seznam, viz screenshoty:

4. Pak klikněte na tlačítko OK zavřete dialogové okno, uložte a zavřete okno s kódem, vraťte se do listu a zadejte tento vzorec: =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:

Poznámka: Ve výše uvedeném vzorci A2: C11 je rozsah dat, který chcete použít, E2 je vyhledávací hodnota, číslo 3 je číslo sloupce, které obsahuje vrácené hodnoty.

Vlookup pro vrácení více hodnot do jedné buňky s užitečnou funkcí

 Pokud máte naše Kutools pro Excel, S jeho Pokročilé kombinování řádků můžete rychle sloučit nebo kombinovat řádky na základě stejné hodnoty a provést některé výpočty podle potřeby.

Poznámka:Použít toto Pokročilé kombinování řádkůNejprve byste si měli stáhnout soubor Kutools pro Excela poté tuto funkci rychle a snadno aplikujte.

Po instalaci Kutools pro Excel, postupujte následovně:

1. Vyberte rozsah dat, do kterého chcete zkombinovat data jednoho sloupce na základě jiného sloupce.

2, klikněte Kutools > Sloučit a rozdělit > Pokročilé kombinování řádků, viz screenshot:

3. Ve vyskočené Pokročilé kombinování řádků dialogové okno:

  • Klikněte na název klíčového sloupce, podle kterého se bude kombinovat, a poté klikněte Primární klíč
  • Poté klikněte na jiný sloupec, jehož data chcete kombinovat na základě klíčového sloupce, a klikněte na Kombinovat vyberte jeden oddělovač pro oddělení kombinovaných dat.

4. Pak klikněte na tlačítko OK tlačítko a získáte následující výsledky:

Stáhněte si zdarma zkušební verzi Kutools pro Excel!


Více relativních článků:

  • Funkce VLOOKUP s některými základními a pokročilými příklady
  • V aplikaci Excel je funkce VLOOKUP výkonnou funkcí pro většinu uživatelů aplikace Excel, která slouží k vyhledání hodnoty v levé části datového rozsahu a vrácení odpovídající hodnoty ve stejném řádku ze zadaného sloupce. Tento kurz hovoří o tom, jak používat funkci VLOOKUP s některými základními a pokročilými příklady v aplikaci Excel.
  • Vrátit více hodnot shody na základě jednoho nebo více kritérií
  • Za normálních okolností je vyhledání konkrétní hodnoty a vrácení odpovídající položky pro většinu z nás snadné pomocí funkce VLOOKUP. Zkusili jste ale někdy vrátit více hodnot shody na základě jednoho nebo více kritérií? V tomto článku představím několik vzorců pro řešení tohoto složitého úkolu v aplikaci Excel.
  • Vlookup a vrátit více hodnot vertikálně
  • Za normálních okolností můžete použít funkci Vlookup k získání první odpovídající hodnoty, ale někdy chcete vrátit všechny odpovídající záznamy na základě konkrétního kritéria. V tomto článku budu hovořit o tom, jak vlookup a vrátit všechny odpovídající hodnoty svisle, vodorovně nebo do jedné buňky.
  • Vlookup a návrat více hodnot z rozevíracího seznamu
  • Jak v aplikaci Excel můžete vlookup a vrátit více odpovídajících hodnot z rozevíracího seznamu, což znamená, že když vyberete jednu položku z rozevíracího seznamu, zobrazí se všechny její relativní hodnoty najednou. V tomto článku představím řešení krok za krokem.

Nejlepší nástroje pro produktivitu v kanceláři

🤖 Kutools AI asistent: Revoluční analýza dat založená na: Inteligentní provedení   |  Generovat kód  |  Vytvořte vlastní vzorce  |  Analyzujte data a generujte grafy  |  Vyvolejte funkce Kutools...
Populární funkce: Najít, zvýraznit nebo identifikovat duplikáty   |  Odstranit prázdné řádky   |  Kombinujte sloupce nebo buňky bez ztráty dat   |   Kolo bez vzorce ...
Super vyhledávání: Více kritérií VLookup    VLookup s více hodnotami  |   VLookup na více listech   |   Fuzzy vyhledávání ....
Pokročilý rozevírací seznam: Rychle vytvořte rozevírací seznam   |  Závislý rozbalovací seznam   |  Vícenásobný výběr rozevíracího seznamu ....
Správce sloupců: Přidejte konkrétní počet sloupců  |  Přesunout sloupce  |  Přepnout stav viditelnosti skrytých sloupců  |  Porovnejte rozsahy a sloupce ...
Doporučené funkce: Zaměření mřížky   |  Návrhové zobrazení   |   Velký Formula Bar    Správce sešitů a listů   |  Knihovna zdrojů (Automatický text)   |  Výběr data   |  Zkombinujte pracovní listy   |  Šifrovat/dešifrovat buňky    Odesílat e-maily podle seznamu   |  Super filtr   |   Speciální filtr (filtr tučné/kurzíva/přeškrtnuté...) ...
Top 15 sad nástrojů12 Text Tools (doplnit text, Odebrat znaky, ...)   |   50+ Graf Typ nemovitosti (Ganttův diagram, ...)   |   40+ Praktické Vzorce (Vypočítejte věk na základě narozenin, ...)   |   19 Vložení Tools (Vložte QR kód, Vložit obrázek z cesty, ...)   |   12 Konverze Tools (Čísla na slova, Přepočet měny, ...)   |   7 Sloučit a rozdělit Tools (Pokročilé kombinování řádků, Rozdělit buňky, ...)   |   ... a více

Rozšiřte své dovednosti Excel pomocí Kutools pro Excel a zažijte efektivitu jako nikdy předtím. Kutools for Excel nabízí více než 300 pokročilých funkcí pro zvýšení produktivity a úsporu času.  Kliknutím sem získáte funkci, kterou nejvíce potřebujete...

Popis


Office Tab přináší do Office rozhraní s kartami a usnadňuje vám práci

  • Povolte úpravy a čtení na kartách ve Wordu, Excelu, PowerPointu, Publisher, Access, Visio a Project.
  • Otevřete a vytvořte více dokumentů na nových kartách ve stejném okně, nikoli v nových oknech.
  • Zvyšuje vaši produktivitu o 50%a snižuje stovky kliknutí myší každý den!
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