Note: The other languages of the website are Google-translated. Back to English

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!

De bedste Office-produktivitetsværktøjer

Kutools til Excel løser de fleste af dine problemer og øger din produktivitet med 80%

  • Genbruge: Indsæt hurtigt komplekse formler, diagrammer og alt, hvad du har brugt før; Krypter celler med adgangskode Opret postliste og send e-mails ...
  • Super formel bar (let redigere flere linjer med tekst og formel); Læsning Layout (let at læse og redigere et stort antal celler); Indsæt til filtreret rækkevidde...
  • Flet celler / rækker / kolonner uden at miste data; Split celler indhold; Kombiner duplikerede rækker / kolonner... Forhindre duplikerede celler; Sammenlign områder...
  • Vælg Duplicate eller Unique Rækker; Vælg tomme rækker (alle celler er tomme); Super Find og Fuzzy Find i mange arbejdsbøger; Tilfældig valg ...
  • Præcis kopi Flere celler uden at ændre formelreference; Auto Opret referencer til flere ark; Indsæt kugler, Afkrydsningsfelter og mere ...
  • Uddrag tekst, Tilføj tekst, Fjern efter position, Fjern mellemrum; Opret og udskriv personsøgningssubtotaler; Konverter mellem celler indhold og kommentarer...
  • Superfilter (gem og anvend filterskemaer på andre ark); Avanceret sortering efter måned / uge / dag, hyppighed og mere; Specielt filter af fed, kursiv ...
  • Kombiner arbejdsbøger og arbejdsark; Fletabeller baseret på nøglekolonner; Opdel data i flere ark; Batch Konverter xls, xlsx og PDF...
  • Mere end 300 kraftfulde funktioner. Understøtter Office / Excel 2007-2021 og 365. Understøtter alle sprog. Nem implementering i din virksomhed eller organisation. Fuld funktioner 30-dages gratis prøveperiode. 60 dages pengene tilbage garanti.
kte-fane 201905

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!
officetab bund
Sorter kommentarer efter
Kommentarer (16)
Ingen vurderinger endnu. Vær den første til at bedømme!
Denne kommentar blev minimeret af moderatoren på webstedet
Sådan får du resultatet. Hjælp venligst. data data1 resultat a 1 a1 b 2 a2 c b1 b2 c1 c2
Denne kommentar blev minimeret af moderatoren på webstedet
Når du bruger cusvlookup, er der en måde at tilføje efternavnet også med et komma imellem, der kan forekomme i kolonne C
Denne kommentar blev minimeret af moderatoren på webstedet
Elskede funktionen til Excel 2013, men ændrede den lidt for at ændre skilletegnet til ";" i stedet for " " og fjern derefter præfikset ";" fra de sammenkædede værdier. Resultater, der matcher værdier i mit eksempel, ville have ;result01 eller ;result01;result02 . Tilføjet den ekstra If Left(xResult, 1) = ";" for at fjerne ekstra ";" i begyndelsen af ​​strengen, hvis det er det 1. tegn. Jeg er sikker på, at der er en pænere måde at gøre det på, men det virkede for mig. :) Funktion CusVlookup(pValue As String, pWorkRng As Range, PIndex As Long) Dim rng As Range Dim xResult As String xResult = "" For hver rng In pWorkRng If rng = pValue Then xResult = xResult & ";" & rng.Offset(0, pIndex - 1) If Left(xResult, 1) = ";" Så xResult = MID(xResult,2,255) End If End If Next CusVlookup = xResult End Function
Denne kommentar blev minimeret af moderatoren på webstedet
Gør hvis betingelse for resultat hvis tom.

Funktion CusVlookup(lookupval, lookuprange As Range, indexcol As Long)
'opdatering af Extendoffice 20151118
Dim x As Range
Svagt resultat som streng
resultat = ""
For hvert x i opslagsområde
Hvis x = lookupval Så
Hvis ikke resultat = "" Så
resultat = resultat & " " & x.Offset(0, indexcol - 1)
Else
resultat = x.Offset(0, indekskolonne - 1)
End If
Næste x
CusVlookup = resultat
End Function
Denne kommentar blev minimeret af moderatoren på webstedet
Dette er forbløffende, men jeg leder efter noget andet, jeg har en tabel med RollNo StudentName sub1, sub2, sub3 ... Samlet resultat, når jeg indtaster Rollnumber skulle det give et resultat som "SName Sub1 64, sub2 78,... I alt 389, Resultatbestået", er det muligt
Denne kommentar blev minimeret af moderatoren på webstedet
Er der en måde at slette de duplikerede værdier i sammenkædningen?
Denne kommentar blev minimeret af moderatoren på webstedet
Hej Jacob,
Måske kan følgende artikel hjælpe dig med at løse dit problem.
https://www.extendoffice.com/documents/excel/3381-excel-extract-unique-values-with-criteria.html

Prøv venligst, håber det kan hjælpe dig!
Denne kommentar blev minimeret af moderatoren på webstedet
Er der en måde at liste de duplikerede værdier kun én gang ved at bruge vba-koden og formlen ovenfor? Jeg er ikke sikker på, hvor jeg skal placere countif>1-sætningen i formellinjen eller i selve vba'en. Hjælp venligst
Denne kommentar blev minimeret af moderatoren på webstedet
du kan tilføje to ekstra betingelser for at springe tomme celler over og for at springe over dubletter: For i = 1 Til CriteriaRange.Count
Hvis CriteriaRange.Cells(i).Value = Condition Then
Hvis ConcatenateRange.Cells(i).Value <> "" Så 'SKIP BANKER
Hvis InStr(xResult, ConcatenateRange.Cells(i).Value) = 0, så 'SKIP IF FUND DUPLICATE
xResult = xResult & Separator & ConcatenateRange.Cells(i).Value
End If
End If
End If
Næste jeg
Denne kommentar blev minimeret af moderatoren på webstedet
Jeg må sige, jeg har forsøgt at få en formel til at kombinere flere værdier og returnere dem til en enkelt celle i 2 dage nu. Denne "How To" har reddet mig!! Mange tak! Jeg ville aldrig have fået det uden dit modul!
Jeg har dog 2 spørgsmål. Jeg har afgrænseren som et komma i stedet for et mellemrum, og derfor starter det med et komma. Er der en måde at forhindre startkommaet på, men beholde resten?
Mit andet spørgsmål er; Når jeg bruger udfyldningshåndtaget ændrer det områdeværdierne såvel som den celleværdi, jeg vil slå op. Jeg vil have den til at fortsætte med at ændre det cellenummer, jeg vil slå op, men beholde de samme intervalværdier. Hvordan kan jeg få dette til at ske?

Mange tak for din hjælp!!
Denne kommentar blev minimeret af moderatoren på webstedet
cusVlookup'en fungerede godt for mig. En anden måde at have en anden separator på er at pakke ind i to erstatningsfunktioner. Det første (indefra og ud) erstatter det første mellemrum uden mellemrum, det andet erstatter alle andre mellemrum med et " / " i mit. Kunne bruge "," hvis du vil have kommaer.
=SUBSTITUTE(SUBSTITUTE(cusVlookup(D2,Tabel1,2)," ","",1)," "," / ")

Hvis din opslagsværdi ikke er den første kolonne, kan du også bruge 0 eller negative tal til at gå til kolonnen til venstre.
=SUBSTITUTE(SUBSTITUTE(cusVlookup(D2,Tabel1,-1)," ","",1)," "," / ")
Denne kommentar blev minimeret af moderatoren på webstedet
Hej, jeff,
Tak for din deling, du må være en varmhjertet mand.
Denne kommentar blev minimeret af moderatoren på webstedet
Dette fungerer godt for mig - er der overhovedet at ændre det, at det tjekker om cellen indeholder snarere end et komplet match? Grundlæggende har jeg en liste over opgaver, hvor:
Kolonne A: Afhængigheder (f.eks. 10003 10004 10008)
Kolonne B: Opgavereference (f.eks. 10001)
Kolonne C: Afhængige opgaver (kolonnen for formelresultatet) - hvor den ville slå opgavereferencen op for at se, hvilke rækker der indeholder den i kolonne A, og derefter liste opgavereferencen for disse opgaver.

For eksempel:

Række | Kolonne A | Kolonne B | Kolonne C
1 | | 10001 | 10002 10003
2 | 10001 | 10002 | 10003
3 | 10001 10002 | 10003 |
Denne kommentar blev minimeret af moderatoren på webstedet
du ønsker at bruge funktionen Instr() som vil søge efter noget i en tekststreng i en celle. Du kan også bruge Left() og Right(), hvis du leder efter start- eller slutdetaljerne.
Denne kommentar blev minimeret af moderatoren på webstedet
Er der nogen måde at få det unikke "navn" for "klasse1"
Denne kommentar blev minimeret af moderatoren på webstedet
Hej, sym-john,
Måske kan nedenstående artikel løse dit problem, se den venligst:
https://www.extendoffice.com/documents/excel/3381-excel-extract-unique-values-with-criteria.html
Der er endnu ingen kommentarer her
Efterlad dine kommentarer
Sender som gæst
×
Bedøm dette indlæg:
0   Tegn
Foreslåede steder

Følg os

Copyright © 2009 - www.extendoffice.com. | Alle rettigheder forbeholdes. Drevet af ExtendOffice. | | Sitemap
Microsoft og Office-logoet er varemærker eller registrerede varemærker tilhørende Microsoft Corporation i USA og / eller andre lande.
Beskyttet af Sectigo SSL