Gå til hovedindhold

Hvordan vlookup for at returnere flere værdier i en celle i Excel?

Normalt, i Excel, når du bruger VLOOKUP-funktionen, hvis der er flere værdier, der matcher kriterierne, kan du bare få den første. Men nogle gange vil du returnere alle de tilsvarende værdier, der opfylder kriterierne, i en celle som vist nedenstående skærmbillede, hvordan kunne du løse det?

Vlookup for at returnere flere værdier i en celle med TEXTJOIN-funktionen (Excel 2019 og Office 365)

Vlookup for at returnere flere værdier i en celle med brugerdefineret funktion

Vlookup for at returnere flere værdier til en celle med en nyttig funktion


Vlookup for at returnere flere værdier i en celle med TEXTJOIN-funktionen (Excel 2019 og Office 365)

Hvis du har den højere version af Excel som Excel 2019 og Office 365, er der en ny funktion - TEKSTJOIN, med denne kraftfulde funktion kan du hurtigt vlookup og returnere alle matchende værdier i en celle.

Vlookup for at returnere alle matchende værdier i en celle

Anvend nedenstående formel i en tom celle, hvor du vil placere resultatet, og tryk derefter på Ctrl + Skift + Enter nøgler sammen for at få det første resultat, og træk derefter fyldhåndtaget ned til den celle, du vil bruge denne formel, og du får alle tilsvarende værdier som vist nedenstående skærmbillede:

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

Bemærk: I ovenstående formel A2: A11 er opslagsområdet indeholder opslagsdata, E2 er opslagsværdien, C2: C11 er det dataområde, som du vil returnere de matchende værdier fra, ","er separatoren for at adskille flere poster.

Vlookup for at returnere alle matchende værdier uden dubletter i en celle

Hvis du vil returnere alle matchende værdier baseret på opslagsdata uden dubletter, kan nedenstående formel hjælpe dig.

Kopier og indsæt følgende formel i en tom celle, og tryk derefter på Ctrl + Skift + Enter nøgler sammen for at få det første resultat, og kopier derefter denne formel for at udfylde andre celler, og du får alle tilsvarende værdier uden dulpikat som vist nedenfor:

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

Bemærk: I ovenstående formel A2: A11 er opslagsområdet indeholder opslagsdata, E2 er opslagsværdien, C2: C11 er det dataområde, som du vil returnere de matchende værdier fra, ","er separatoren for at adskille flere poster.

Vlookup for at returnere flere værdier i en celle med brugerdefineret funktion

Ovenstående TEXTJOIN-funktion er kun tilgængelig for Excel 2019 og Office 365, hvis du har andre lavere Excel-versioner, skal du bruge nogle koder til at afslutte denne opgave.

Vlookup for at returnere alle matchende værdier i en celle

1. Hold nede ALT + F11 tasterne, og det åbner Microsoft Visual Basic til applikationer vindue.

2. Klik indsatte > Moduler, og indsæt følgende kode i Modul vindue.

VBA-kode: Vlookup for at returnere flere værdier til en celle

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. Gem derefter og luk denne kode, gå tilbage til regnearket, og indtast denne formel: =CONCATENATEIF($A$2:$A$11, E2, $C$2:$C$11, ", ") ind i en bestemt tom celle, hvor du vil placere resultatet, og træk derefter fyldhåndtaget ned for at få alle de tilsvarende værdier i en celle, du vil have, se skærmbillede:

Bemærk: I ovenstående formel A2: A11 er opslagsområdet indeholder opslagsdata, E2 er opslagsværdien, C2: C11 er det dataområde, som du vil returnere de matchende værdier fra, ","er separatoren for at adskille flere poster.

Vlookup for at returnere alle matchende værdier uden dubletter i en celle

For at ignorere duplikaterne i de returnerede matchende værdier skal du gøre med nedenstående kode.

1. Hold nede Alt + F11 nøgler til at åbne Microsoft Visual Basic til applikationer vindue.

2. Klik indsatte > Moduler, og indsæt følgende kode i Modul vindue.

VBA-kode: Vlookup og returner flere unikke matchede værdier i en celle

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. Når du har indsat koden, skal du klikke på Værktøjer > Referencer i det åbnede Microsoft Visual Basic til applikationer vindue og derefter i det dukkede ud Referencer - VBAProject dialogboks, tjek Microsoft Scripting Runtime valgmulighed i Tilgængelige referencer listefelt, se skærmbilleder:

4. Klik derefter på OK for at lukke dialogboksen, gemme og lukke kodevinduet, vende tilbage til regnearket og indtaste denne formel: =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:

Bemærk: I ovenstående formel A2: C11 er det dataområde, du vil bruge, E2 er opslagsværdien, antallet 3 er kolonnetallet, der indeholder de returnerede værdier.

Vlookup for at returnere flere værdier til en celle med en nyttig funktion

 Hvis du har vores Kutools til Excel, Med Avancerede kombinere rækker funktion, kan du hurtigt flette eller kombinere rækkerne baseret på den samme værdi og foretage nogle beregninger, som du har brug for.

Bemærk:At anvende dette Avancerede kombinere rækkerFor det første skal du downloade Kutools til Excel, og anvend derefter funktionen hurtigt og nemt.

Efter installation Kutools til Excelskal du gøre som følger:

1. Vælg det dataområde, som du vil kombinere en kolonnedata baseret på en anden kolonne.

2. Klik Kutools > Flet og del > Avancerede kombinere rækker, se skærmbillede:

3. I poppet ud Avancerede kombinere rækker dialog boks:

  • Klik på det nøglekolonnens navn, der skal kombineres baseret på, og klik derefter på Primærnøgle
  • Klik derefter på en anden kolonne, som du vil kombinere dens data baseret på nøglekolonnen, og klik Kombiner for at vælge en separator til adskillelse af de kombinerede data.

4. Klik derefter på OK knappen, og du får følgende resultater:

Download og gratis prøveversion Kutools til Excel nu!


Flere relative artikler:

  • VLOOKUP-funktion med nogle grundlæggende og avancerede eksempler
  • I Excel er VLOOKUP-funktionen en kraftig funktion for de fleste af Excel-brugere, som bruges til at lede efter en værdi i venstre række af dataområdet og returnere en matchende værdi i samme række fra en kolonne, du har angivet. Denne vejledning taler om, hvordan du bruger VLOOKUP-funktionen med nogle grundlæggende og avancerede eksempler i Excel.
  • Returner flere matchende værdier baseret på et eller flere kriterier
  • Normalt er det let for de fleste af os at søge efter en bestemt værdi og returnere den matchende vare ved hjælp af funktionen VLOOKUP. Men har du nogensinde prøvet at returnere flere matchende værdier baseret på et eller flere kriterier? I denne artikel vil jeg introducere nogle formler til løsning af denne komplekse opgave i Excel.
  • Vlookup og returner flere værdier lodret
  • Normalt kan du bruge Vlookup-funktionen til at få den første tilsvarende værdi, men nogle gange vil du returnere alle matchende poster baseret på et specifikt kriterium. Denne artikel vil jeg tale om, hvordan man vlookup og returnerer alle matchende værdier lodret, vandret eller i en enkelt celle.
  • Vlookup og returner flere værdier fra rullelisten
  • Hvordan kunne du i Excel oprette og returnere flere tilsvarende værdier fra en rulleliste, hvilket betyder, at når du vælger et element fra rullelisten, vises alle dets relative værdier på én gang. Denne artikel vil jeg introducere løsningen trin for trin.

Bedste kontorproduktivitetsværktøjer

🤖 Kutools AI Aide: Revolutionér dataanalyse baseret på: Intelligent udførelse   |  Generer kode  |  Opret brugerdefinerede formler  |  Analyser data og generer diagrammer  |  Aktiver Kutools funktioner...
Populære funktioner: Find, fremhæv eller identificer dubletter   |  Slet tomme rækker   |  Kombiner kolonner eller celler uden at miste data   |   Runde uden formel ...
Super opslag: VLookup med flere kriterier    Multiple Value VLookup  |   VOpslag på tværs af flere ark   |   Fuzzy Lookup ....
Avanceret rulleliste: Opret hurtigt rulleliste   |  Afhængig rulleliste   |  Multivælg rulleliste ....
Column Manager: Tilføj et bestemt antal kolonner  |  Flyt kolonner  |  Skift synlighedsstatus for skjulte kolonner  |  Sammenlign områder og kolonner ...
Fremhævede funktioner: Grid fokus   |  Designvisning   |   Stor Formel Bar    Arbejdsbog & Ark Manager   |  Ressourcebibliotek (Autotekst)   |  Datovælger   |  Kombiner regneark   |  Krypter/Dekrypter celler    Send e-mails efter liste   |  Superfilter   |   Specielt filter (filter fed/kursiv/gennemstreget...) ...
Top 15 værktøjssæt12 tekst Værktøjer (tilføje tekst, Fjern tegn, ...)   |   50 + Chart Typer (Gantt kort, ...)   |   40+ Praktisk formler (Beregn alder baseret på fødselsdag, ...)   |   19 Indsættelse Værktøjer (Indsæt QR-kode, Indsæt billede fra sti, ...)   |   12 Konvertering Værktøjer (Tal til ord, Valutaomregning, ...)   |   7 Flet og del Værktøjer (Avancerede kombinere rækker, Opdel celler, ...)   |   ... og mere

Overlad dine Excel-færdigheder med Kutools til Excel, og oplev effektivitet som aldrig før. Kutools til Excel tilbyder over 300 avancerede funktioner for at øge produktiviteten og spare tid.  Klik her for at få den funktion, du har mest brug for...

Beskrivelse


Fanen Office bringer en grænseflade til et kontor med Office, og gør dit arbejde meget lettere

  • Aktiver redigering og læsning af faner i Word, Excel, PowerPoint, Publisher, Access, Visio og Project.
  • Åbn og opret flere dokumenter i nye faner i det samme vindue snarere end i nye vinduer.
  • Øger din produktivitet med 50 % og reducerer hundredvis af museklik for dig hver dag!
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