Ugrás a tartalomra

Hogyan lehet vlookup segítségével több értéket visszaadni egy Excel cellában?

Általában az Excelben a VLOOKUP függvény használatakor, ha több érték is megfelel a feltételeknek, akkor csak az elsőt kaphatja meg. De néha vissza szeretné adni az összes megfelelő értéket, amely megfelel a kritériumoknak, egy cellába, a következő képernyőkép szerint. Hogyan tudná megoldani?

Vlookup több érték visszaadásához egy cellába a TEXTJOIN funkcióval (Excel 2019 és Office 365)

Vlookup több érték visszaadásához egy cellába a Felhasználó által definiált funkcióval

Vlookup segítségével több értéket adhat vissza egy cellába egy hasznos funkcióval


Vlookup több érték visszaadásához egy cellába a TEXTJOIN funkcióval (Excel 2019 és Office 365)

Ha az Excel magasabb verziója van, például az Excel 2019 és az Office 365, van egy új funkció - SZÖVEG, ezzel a hatékony funkcióval gyorsan megtekintheti a vlookup programot, és az összes megfelelő értéket visszaadhatja egy cellába.

Vlookup, hogy az összes megfelelő értéket egy cellába adja vissza

Kérjük, alkalmazza az alábbi képletet egy üres cellába, ahová be szeretné helyezni az eredményt, majd nyomja meg a gombot Ctrl + Shift + Enter gombokat együtt kapva az első eredményt, majd húzza lefelé a kitöltő fogantyút arra a cellára, amelyet használni szeretne ezzel a képlettel, és megkapja az összes megfelelő értéket az alábbi képernyőképen:

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

Jegyzet: A fenti képletben A2: A11 a keresési tartomány tartalmazza a keresési adatokat, E2 a keresési érték, C2: C11 az az adattartomány, amelyből vissza szeretné adni az egyező értékeket, ","az elválasztó a több rekord elválasztására.

Vlookup, hogy az összes egyező értéket ismétlés nélkül egy cellába adja vissza

Ha a keresési adatok alapján az összes egyező értéket vissza szeretné adni duplikációk nélkül, akkor az alábbi képlet segíthet.

Kérjük, másolja és illessze be az alábbi képletet egy üres cellába, majd nyomja meg az gombot Ctrl + Shift + Enter kulcsokat együtt kapva az első eredményt, majd másolja ezt a képletet, hogy kitöltse a többi cellát, és az összes megfelelő értéket megkapja a hibás értékek nélkül, az alábbi képernyőképen:

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

Jegyzet: A fenti képletben A2: A11 a keresési tartomány tartalmazza a keresési adatokat, E2 a keresési érték, C2: C11 az az adattartomány, amelyből vissza szeretné adni az egyező értékeket, ","az elválasztó a több rekord elválasztására.

Vlookup több érték visszaadásához egy cellába a Felhasználó által definiált funkcióval

A fenti TEXTJOIN függvény csak az Excel 2019 és az Office 365 esetén érhető el, ha más alacsonyabb Excel verziók is vannak, akkor néhány kódot kell használnia a feladat befejezéséhez.

Vlookup, hogy az összes megfelelő értéket egy cellába adja vissza

1. Tartsa lenyomva a ALT + F11 gombokat, és ez megnyitja a Microsoft Visual Basic for Applications ablak.

2. Kattints betétlap > Modulok, és illessze be a következő kódot a Modul ablak.

VBA kód: Vlookup több érték visszaadásához egy cellába

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. Ezután mentse el és zárja be ezt a kódot, menjen vissza a munkalapra, és írja be ezt a képletet: =CONCATENATEIF($A$2:$A$11, E2, $C$2:$C$11, ", ") egy adott üres cellába, ahová el szeretné helyezni az eredményt, majd húzza lefelé a kitöltő fogantyút, hogy az összes megfelelő értéket egy kívánt cellába kapja, lásd: képernyőkép

Jegyzet: A fenti képletben A2: A11 a keresési tartomány tartalmazza a keresési adatokat, E2 a keresési érték, C2: C11 az az adattartomány, amelyből vissza szeretné adni az egyező értékeket, ","az elválasztó a több rekord elválasztására.

Vlookup, hogy az összes egyező értéket ismétlés nélkül egy cellába adja vissza

Ha figyelmen kívül akarja hagyni a visszaküldött megfelelő értékek duplikátumait, kérjük, tegye az alábbi kódot.

1. Tartsa lenyomva a Alt + F11 billentyűk megnyitásához Microsoft Visual Basic for Applications ablak.

2. Kattints betétlap > Modulok, és illessze be a következő kódot a Modul ablak.

VBA kód: Vlookup és több egyedi egyeztetett értéket adhat vissza egy cellába

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. A kód beillesztése után kattintson a gombra Eszközök > Referenciák a nyitottban Microsoft Visual Basic for Applications ablakot, majd beugrott Referenciák - VBAProject párbeszédpanelen ellenőrizze Microsoft Scripting Runtime lehetőség a Elérhető referenciák lista mező, lásd a képernyőképeket:

4. Ezután kattintson OK a párbeszédpanel bezárásához mentse el és zárja be a kódablakot, térjen vissza a munkalapra, és írja be ezt a képletet: =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:

Jegyzet: A fenti képletben A2: C11 a használni kívánt adattartomány, E2 a keresési érték, a szám 3 az oszlop száma, amely tartalmazza a visszaadott értékeket.

Vlookup segítségével több értéket adhat vissza egy cellába egy hasznos funkcióval

 Ha megvan a mi Kutools az Excel számára, Annak Haladó kombinált sorok funkcióval gyorsan egyesítheti vagy kombinálhatja a sorokat ugyanazon érték alapján, és elvégezhet néhány számítást, amire szüksége van.

Jegyzet:Ennek alkalmazásához Haladó kombinált sorok, először is le kell töltenie a Kutools az Excel számára, majd gyorsan és egyszerűen alkalmazza a funkciót.

Telepítése után Kutools az Excel számára, kérjük, tegye a következőket:

1. Válassza ki azt az adattartományt, amelyhez az egyik oszlop adatait egy másik oszlop alapján kívánja kombinálni.

2. Kattints Kutools > Egyesítés és felosztás > Haladó kombinált sorok, lásd a képernyőképet:

3. A kiugrott Haladó kombinált sorok párbeszédablak:

  • Kattintson az összevonni kívánt kulcsoszlop nevére, majd kattintson a gombra Elsődleges kulcs
  • Ezután kattintson egy másik oszlopra, amelynek adatait a kulcsoszlop alapján kívánja egyesíteni, majd kattintson a gombra Kombájn válasszon egy elválasztót az egyesített adatok elválasztására.

4. Ezután kattintson OK gombra, és a következő eredményeket kapja:

Töltse le és ingyenes próbaverziója a Kutools for Excel programhoz most!


Relatívabb cikkek:

  • VLOOKUP funkció néhány alapvető és haladó példával
  • Az Excelben a VLOOKUP függvény az Excel legtöbb felhasználójának hatékony funkciója, amelyet arra használnak, hogy az adattartomány bal szélén lévő értéket keressen, és az Ön által megadott oszlopból adja vissza a megfelelő értéket ugyanabban a sorban. Ez az oktatóanyag a VLOOKUP függvény használatáról szól az Excel néhány alapvető és haladó példájával.
  • Több egyező értéket adhat vissza egy vagy több feltétel alapján
  • Normális esetben a VLOOKUP funkció használatával a legtöbbünk számára könnyű megkeresni egy adott értéket és visszaadni az egyező elemet. De próbált már valaha több egyező értéket visszaadni egy vagy több kritérium alapján? Ebben a cikkben bemutatok néhány képletet ennek az összetett feladatnak az Excelben történő megoldására.
  • Vlookup és több érték visszaadása függőlegesen
  • Normál esetben a Vlookup függvény használatával megkapja az első megfelelő értéket, de néha az összes megfelelő rekordot vissza szeretné adni egy adott kritérium alapján. Ebben a cikkben arról fogok beszélni, hogy hogyan lehet az összes egyező értéket függőlegesen, vízszintesen vagy egyetlen cellába visszaadni.
  • Vlookup és több értéket ad vissza a legördülő listából
  • Az Excelben hogyan lehetne vlookup-ot létrehozni és több megfelelő értéket visszaadni egy legördülő listából, ami azt jelenti, hogy ha egy elemet választ a legördülő listából, akkor annak összes relatív értéke egyszerre jelenik meg. Ez a cikk lépésről lépésre bemutatom a megoldást.

A legjobb irodai hatékonyságnövelő eszközök

Népszerű szolgáltatások: Ismétlődések keresése, kiemelése vagy azonosítása   |  Üres sorok törlése   |  Oszlopok vagy cellák kombinálása adatvesztés nélkül   |   Kerek Formula nélkül ...
Szuper keresés: Több kritérium VLookup    Többértékű VLookup  |   VLookup több munkalapon   |   Fuzzy Lookup ....
Speciális legördülő lista: Gyors legördülő lista létrehozása   |  Függő legördülő lista   |  Többszörösen válassza ki a legördülő listát ....
Oszlopkezelő: Adjon meg egy adott számú oszlopot  |  Oszlopok mozgatása  |  Kapcsolja be a Rejtett oszlopok láthatósági állapotát  |  Tartományok és oszlopok összehasonlítása ...
Kiemelt funkciók: Rács fókusz   |  Design nézet   |   Nagy Formula bár    Munkafüzet és lapkezelő   |  Erőforrás-könyvtár (Auto szöveg)   |  Dátumválasztó   |  Kombinálja a munkalapokat   |  Cellák titkosítása/dekódolása    E-mailek küldése listánként   |  Szuper szűrő   |   Speciális szűrő (félkövér/dőlt/áthúzott szűrés...) ...
A 15 legjobb eszközkészlet12 szöveg Eszközök (Szöveg hozzáadása, Karakterek eltávolítása,...)   |   50 + Táblázatos Típusai (Gantt-diagram,...)   |   40+ Praktikus képletek (Számolja ki az életkort a születésnap alapján,...)   |   19 beszúrás Eszközök (Helyezze be a QR-kódot, Kép beszúrása az útvonalból,...)   |   12 Átalakítás Eszközök (Számok szavakig, Valuta átváltás,...)   |   7 Egyesítés és felosztás Eszközök (Haladó kombinált sorok, Hasított sejtek,...)   |   ... és több

Töltsd fel Excel-készségeidet a Kutools for Excel segítségével, és tapasztald meg a még soha nem látott hatékonyságot. A Kutools for Excel több mint 300 speciális funkciót kínál a termelékenység fokozásához és az időmegtakarításhoz.  Kattintson ide, hogy megszerezze a leginkább szükséges funkciót...

kte lap 201905


Az Office lap füles felületet hoz az Office-ba, és sokkal könnyebbé teszi a munkáját

  • Füles szerkesztés és olvasás engedélyezése Wordben, Excelben és PowerPointban, Publisher, Access, Visio és Project.
  • Több dokumentum megnyitása és létrehozása ugyanazon ablak új lapjain, mint új ablakokban.
  • 50% -kal növeli a termelékenységet, és naponta több száz kattintással csökkenti az egér kattintását!
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