Gå til hovedindhold

Hvordan slettes og sammenkædes flere tilsvarende værdier i Excel?

Som vi alle vidste, LOPSLAG funktion i Excel kan hjælpe os med at slå en værdi op og returnere de tilsvarende data i en anden kolonne, men generelt kan den kun få den første relative værdi, hvis der er flere matchende data. I denne artikel vil jeg tale om, hvordan man vlookup og sammenkæder flere tilsvarende værdier i kun en celle eller en lodret liste.

Vlookup og returner flere matchende værdier lodret med formlen

Vlookup og sammenkæd flere matchende værdier i en celle med brugerdefineret funktion

Vlookup og sammenkæd flere matchende værdier i en celle med Kutools til Excel


Antag, jeg har følgende dataområde for at få alle de tilsvarende værdier baseret på en bestemt værdi lodret som det følgende skærmbillede vist, kan du anvende en matrixformel.

doc vlookup sammenkædning 1

1. Indtast denne formel: =IF(COUNTIF($A$1:$A$16,$D$2)>=ROWS($1:1),INDEX($B$1:$B$16,SMALL(IF($A$1:$A$16=$D$2,ROW($1:$16)),ROW(1:1))),"") ind i en tom celle, hvor du vil placere resultatet, for eksempel E2, og tryk derefter på Ctrl + Skift + Enter nøgler sammen for at få den relative værdibase på et specifikt kriterium, se skærmbillede:

doc vlookup sammenkædning 2

Bemærk: I ovenstående formel:

A1: A16 er kolonneområdet, der indeholder den specifikke værdi, du vil kigge efter;

D2 angiver den specifikke værdi, du vil vlookup;

B1: B16 er det kolonneområde, som du vil returnere de tilsvarende data fra;

$ 1: $ 16 angiver rækkehenvisningen inden for området.

2. Vælg derefter celle E2, og træk påfyldningshåndtaget ned til cellerne, indtil du får tomme celler, og alle matchende værdier er angivet i kolonnen som vist på følgende skærmbillede:

doc vlookup sammenkædning 3


I stedet for at få de relative værdier lodret, vil du nogle gange de matchende værdier i en celle og sammenkæde dem med en bestemt separator. I dette tilfælde kan følgende brugerdefinerede funktion muligvis gøre dig en tjeneste.

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

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

VBA-kode: Vlookup og sammenkædning af flere matchende værdier i en celle

Function CusVlookup(lookupval, lookuprange As Range, indexcol As Long)
'updateby Extendoffice
Dim x As Range
Dim result As String
result = ""
For Each x In lookuprange
    If x = lookupval Then
        result = result & " " & x.Offset(0, indexcol - 1)
    End If
Next x
CusVlookup = result
End Function

3. Gem derefter og luk denne kode, gå tilbage til regnearket, og indtast denne formel: = cusvlookup (D2, A1: B16,2) ind i en tom celle, hvor du vil placere resultatet, og tryk på Indtast nøgle, alle tilsvarende værdier baseret på bestemte data er returneret i en celle med pladsudskiller, se skærmbillede:

doc vlookup sammenkædning 4

Bemærk: I ovenstående formel: D2 angiver de celleværdier, du vil slå op, A1: B16 er det dataområde, som du vil hente dataene, antallet 2 er det kolonnenummer, som den matchende værdi skal returneres fra, kan du ændre disse referencer til dit behov.


Hvis du har Kutools til Excel, Med Avancerede kombinere rækker funktion, kan du hurtigt afslutte dette job med lethed. Denne funktion kan hjælpe dig med at kombinere alle matchende værdier med en bestemt afgrænser baseret på de samme data i en anden kolonne.

Kutools til Excel : med mere end 300 praktiske Excel-tilføjelsesprogrammer, gratis at prøve uden begrænsning på 30 dage.

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

1. Vælg det dataområde, som du ønsker at få de tilsvarende værdier baseret på de specifikke data.

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

3. I Avancerede kombinere rækker Klik på det kolonnenavn, du vil kombinere baseret på, og klik derefter på Primærnøgle knap, se skærmbillede:

doc vlookup sammenkædning 6

4. Klik derefter på et andet kolonnenavn, som du vil returnere de matchede værdier, og klik på Kombiner for at vælge en separator for at adskille de kombinerede værdier, se skærmbillede:

doc vlookup sammenkædning 7

5. Og klik derefter på Ok -knappen er alle de tilsvarende værdier baseret på de samme værdier blevet kombineret med en bestemt separator, se skærmbilleder:

doc vlookup sammenkædning 8 2 doc vlookup sammenkædning 9

 Download og gratis prøveversion Kutools til Excel nu!


Kutools til Excel: med mere end 300 praktiske Excel-tilføjelsesprogrammer, gratis at prøve uden begrænsning på 30 dage. Download og gratis prøveversion nu!

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 (16)
No ratings yet. Be the first to rate!
This comment was minimized by the moderator on the site
Is there any way to get the unique "name" for "class1"
This comment was minimized by the moderator on the site
Hello, sym-john,
Maybe the below article can solve your problem, please view it:
https://www.extendoffice.com/documents/excel/3381-excel-extract-unique-values-with-criteria.html
This comment was minimized by the moderator on the site
This is working great for me - is there anyway to change it that it checks if the cell contains rather than a complete match? Basically I have a list of tasks where:
Column A: Dependencies (eg 10003 10004 10008)
Column B: Task Reference (eg 10001)
Column C: Dependent Tasks (the column for the formula result) - where it would lookup the task reference to see which rows contain it in Column A, and then list the Task Reference of those tasks.

E.g:

Row | Column A | Column B | Column C
1 | | 10001 | 10002 10003
2 | 10001 | 10002 | 10003
3 | 10001 10002 | 10003 |
This comment was minimized by the moderator on the site
you would want to use the Instr() function which will check for something in a string of text in a cell. You can also use Left() and Right() if you are looking for the starting or ending details.
This comment was minimized by the moderator on the site
The cusVlookup worked great for me. Another way to have a different separator is to wrap in two substitute functions. The first (from inside to out) replaces the first space with no space, the second replaces all other spaces with a " / " in mine. Could use "," if you want commas.
=SUBSTITUTE(SUBSTITUTE(cusVlookup(D2,Table1,2)," ","",1)," "," / ")

Also, if your lookup value isn't the first column, you can use 0 or negative numbers to go to column to the left.
=SUBSTITUTE(SUBSTITUTE(cusVlookup(D2,Table1,-1)," ","",1)," "," / ")
This comment was minimized by the moderator on the site
Hi, jeff,
Thanks for your sharing, you must be a warmhearted man.
This comment was minimized by the moderator on the site
I have to say, I have been trying to get a formula for combining multiple values and returning them to a single cell for 2 days now. This "How To" has saved me!! Thank you SO much! I would never have gotten it without your Module!
I do have 2 questions though. I have the deliminator as a comma instead of a space and because of that it starts out with a comma. Is there a way to prevent the start comma but keep the rest?
My second question is; When I use the fill handle it changes the range values as well as the cell value I want to look up. I want it to continue to change the cell number I want to look up but keep the same range values. How can I make this happen?

Thank you so much for your help!!
This comment was minimized by the moderator on the site
Is there a way to delete the duplicate values in the concatenate?
This comment was minimized by the moderator on the site
Hello, Jacob,
May be the following article can help you to solve your problem.
https://www.extendoffice.com/documents/excel/3381-excel-extract-unique-values-with-criteria.html

Please try, hope it can help you!
This comment was minimized by the moderator on the site
Is there a way to list the duplicate values only once, using the vba code and formula above? I am not sure where to put the countif>1 statement in the formula bar, or in the vba itself. Please help
This comment was minimized by the moderator on the site
you can add two extra condition to skip blank cells and to skip duplicates:For i = 1 To CriteriaRange.Count
If CriteriaRange.Cells(i).Value = Condition Then
If ConcatenateRange.Cells(i).Value <> "" Then 'SKIP BANKS
If InStr(xResult, ConcatenateRange.Cells(i).Value) = 0 Then 'SKIP IF FOUND DUPLICATE
xResult = xResult & Separator & ConcatenateRange.Cells(i).Value
End If
End If
End If
Next i
This comment was minimized by the moderator on the site
This is amazing but i am looking for something else, i have a table with RollNo StudentName sub1, sub2, sub3 ... Total Result, When I enter Rollnumber it should give a result like "SName Sub1 64, sub2 78,... Total 389, Result pass", is it possible
This comment was minimized by the moderator on the site
Loved the function for Excel 2013 but amended it slightly to change the separating character to ";" instead of " " and then remove the prefixed ";" from the concantenated values Results matching values in my example would have ;result01 or ;result01;result02 . Added the extra If Left(xResult, 1) = ";" to remove any extra ";" at the beginning of the string if it is the 1st character. I'm sure there is a neater way of doing it but it worked for me. :) Function CusVlookup(pValue As String, pWorkRng As Range, pIndex As Long) Dim rng As Range Dim xResult As String xResult = "" For Each rng In pWorkRng If rng = pValue Then xResult = xResult & ";" & rng.Offset(0, pIndex - 1) If Left(xResult, 1) = ";" Then xResult = MID(xResult,2,255) End If End If Next CusVlookup = xResult End Function
This comment was minimized by the moderator on the site
Make if condition for result if empty.

Function CusVlookup(lookupval, lookuprange As Range, indexcol As Long)
'updateby Extendoffice 20151118
Dim x As Range
Dim result As String
result = ""
For Each x In lookuprange
If x = lookupval Then
If Not result = "" Then
result = result & " " & x.Offset(0, indexcol - 1)
Else
result = x.Offset(0, indexcol - 1)
End If
Next x
CusVlookup = result
End Function
This comment was minimized by the moderator on the site
When using the cusvlookup is there a way to add the last name as well with a comma in between that might appear in Column C
This comment was minimized by the moderator on the site
How to get the result. Please help. data data1 result a 1 a1 b 2 a2 c b1 b2 c1 c2
There are no comments posted here yet
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations