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

Hoe meerdere overeenkomstige waarden in Excel opvullen en samenvoegen?

Zoals we allemaal weten, is de Vlookup functie in Excel kan ons helpen een waarde op te zoeken en de bijbehorende gegevens in een andere kolom te retourneren, maar in het algemeen kan het alleen de eerste relatieve waarde krijgen als er meerdere overeenkomende gegevens zijn. In dit artikel zal ik het hebben over het opvouwen en samenvoegen van meerdere overeenkomstige waarden in slechts één cel of een verticale lijst.

Vlookup en retourneer meerdere overeenkomende waarden verticaal met de formule

Vlookup en voeg meerdere overeenkomende waarden in een cel samen met door de gebruiker gedefinieerde functie

Vlookup en voeg meerdere overeenkomende waarden in een cel samen met Kutools voor Excel


Stel dat ik het volgende gegevensbereik heb, om alle corresponderende waarden verticaal op basis van een specifieke waarde te krijgen, zoals in het onderstaande screenshot, kunt u een matrixformule toepassen.

doc vlookup aaneenschakelen 1

1. Voer deze formule in: =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))),"") in een lege cel waar u het resultaat wilt plaatsen, bijvoorbeeld E2, en druk vervolgens op Ctrl + Shift + Enter toetsen samen om de relatieve waarde op basis van een specifiek criterium te krijgen, zie screenshot:

doc vlookup aaneenschakelen 2

Opmerking:: In de bovenstaande formule:

A1: A16 is het kolombereik dat de specifieke waarde bevat waarnaar u wilt zoeken;

D2 geeft de specifieke waarde aan die u wilt opvullen;

B1: B16 is het kolombereik waaruit u de overeenkomstige gegevens wilt retourneren;

$ 1: $ 16 geeft de rijverwijzing binnen het bereik aan.

2. Selecteer vervolgens cel E2 en sleep de vulgreep naar beneden naar de cellen totdat u lege cellen krijgt en alle overeenkomende waarden worden in de kolom weergegeven als in het volgende screenshot:

doc vlookup aaneenschakelen 3


In plaats van de relatieve waarden verticaal op te halen, wilt u soms de overeenkomende waarden in één cel samenvoegen met een specifiek scheidingsteken. In dit geval kan de volgende door de gebruiker gedefinieerde functie u een plezier doen.

1. Houd de toets ingedrukt ALT + F11 toetsen om de te openen Microsoft Visual Basic voor toepassingen venster.

2. Klikken Invoegen > Moduleen plak de volgende code in het Module Venster.

VBA-code: Vlookup en voeg meerdere overeenkomende waarden in een cel samen

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. Sla vervolgens deze code op en sluit deze, ga terug naar het werkblad en voer deze formule in: = cusvlookup (D2, A1: B16,2) in een lege cel waar u het resultaat wilt plaatsen, en druk op Enter key, alle corresponderende waarden op basis van specifieke gegevens zijn geretourneerd in één cel met spatiescheidingsteken, zie screenshot:

doc vlookup aaneenschakelen 4

Opmerking:: In de bovenstaande formule: D2 geeft de celwaarden aan die u wilt opzoeken, A1: B16 is het gegevensbereik waarvoor u de gegevens wilt ophalen, het nummer 2 is het kolomnummer waaruit de overeenkomende waarde moet worden geretourneerd, u kunt deze verwijzingen naar uw behoefte wijzigen.


Als je Kutools for Excel, Met Geavanceerd Combineer rijen functie, kunt u deze taak snel en gemakkelijk voltooien. Deze functie kan u helpen om alle overeenkomende waarden te combineren met specifieke scheidingstekens op basis van dezelfde gegevens in een andere kolom.

Kutools for Excel : met meer dan 300 handige Excel-invoegtoepassingen, gratis te proberen zonder beperking in 30 dagen.

Na het installeren van Kutools for Excelgaat u als volgt te werk:

1. Selecteer het gegevensbereik waarvan u de bijbehorende waarden wilt krijgen op basis van de specifieke gegevens.

2. Dan klikken Kutools > Samenvoegen en splitsen > Geavanceerd Combineer rijen, zie screenshot:

3. In de Geavanceerd Combineer rijen dialoogvenster, klik op de kolomnaam die u wilt combineren op basis van en klik vervolgens op Hoofdsleutel knop, zie screenshot:

doc vlookup aaneenschakelen 6

4. Klik vervolgens op een andere kolomnaam waarvan u de overeenkomende waarden wilt retourneren, en klik op Combineren om een ​​scheidingsteken te kiezen om de gecombineerde waarden te scheiden, zie screenshot:

doc vlookup aaneenschakelen 7

5. En klik vervolgens op Ok knop, zijn alle corresponderende waarden op basis van dezelfde waarden gecombineerd met een specifiek scheidingsteken, zie screenshots:

doc vlookup aaneenschakelen 8 2 doc vlookup aaneenschakelen 9

 Download en gratis proef Kutools voor Excel nu!


Kutools for Excel: met meer dan 300 handige Excel-invoegtoepassingen, gratis te proberen zonder beperking in 30 dagen. Download en probeer nu gratis!

De beste tools voor kantoorproductiviteit

Kutools voor Excel lost de meeste van uw problemen op en verhoogt uw productiviteit met 80%

  • visfuik: Snel invoegen complexe formules, grafieken en alles wat je eerder hebt gebruikt; Versleutel cellen met wachtwoord; Maak een mailinglijst en stuur e-mails ...
  • Super Formula-balk (bewerk eenvoudig meerdere regels tekst en formule); Lay-out lezen (gemakkelijk grote aantallen cellen lezen en bewerken); Plakken in gefilterd bereik...
  • Voeg cellen / rijen / kolommen samen zonder gegevens te verliezen; Gespleten cellen inhoud; Combineer dubbele rijen / kolommen... Voorkom dubbele cellen; Vergelijk Ranges...
  • Selecteer Dupliceren of Uniek Rijen; Selecteer lege rijen (alle cellen zijn leeg); Super zoeken en fuzzy zoeken in veel werkboeken; Willekeurige selectie ...
  • Exacte kopie Meerdere cellen zonder de formuleverwijzing te wijzigen; Maak automatisch verwijzingen naar meerdere bladen; Plaats kogels, Selectievakjes en meer ...
  • Extraheer tekst, Tekst toevoegen, Verwijderen op positie, Ruimte verwijderen; Paging-subtotalen maken en afdrukken; Converteren tussen celinhoud en opmerkingen...
  • Super filter (bewaar en pas filterschema's toe op andere bladen); Geavanceerd sorteren per maand / week / dag, frequentie en meer; Speciaal filter door vet, cursief ...
  • Combineer werkmappen en werkbladen; Tabellen samenvoegen op basis van sleutelkolommen; Gegevens splitsen in meerdere bladen; Batch Converteer xls, xlsx en PDF...
  • Meer dan 300 krachtige functies. Ondersteunt Office / Excel 2007-2019 en 365. Ondersteunt alle talen. Eenvoudig te implementeren in uw onderneming of organisatie. Gratis proefperiode van 30 dagen met volledige functies. 60 dagen geld-terug-garantie.
kte tabblad 201905

Office-tabblad Brengt een interface met tabbladen naar Office en maakt uw werk veel gemakkelijker

  • Schakel bewerken en lezen met tabbladen in Word, Excel, PowerPoint in, Publisher, Access, Visio en Project.
  • Open en maak meerdere documenten in nieuwe tabbladen van hetzelfde venster in plaats van in nieuwe vensters.
  • Verhoogt uw productiviteit met 50% en vermindert elke dag honderden muisklikken!
officetab onderkant
Comments (16)
Nog geen beoordelingen. Beoordeel als eerste!
Deze opmerking is gemaakt door de moderator op de site
Hoe het resultaat te krijgen. Help alstublieft. data data1 resultaat a 1 a1 b 2 a2 c b1 b2 c1 c2
Deze opmerking is gemaakt door de moderator op de site
Bij gebruik van de cusvlookup is er een manier om ook de achternaam toe te voegen met een komma ertussen die in kolom C kan verschijnen
Deze opmerking is gemaakt door de moderator op de site
Ik was dol op de functie voor Excel 2013, maar wijzigde deze enigszins om het scheidingsteken te wijzigen in ";" in plaats van " " en verwijder vervolgens het voorvoegsel ";" van de aaneengeschakelde waarden Resultaten die overeenkomen met waarden in mijn voorbeeld zouden ;result01 of ;result01;result02 hebben. De extra If Left(xResult, 1) = ";" toegevoegd om eventuele extra ";" te verwijderen aan het begin van de tekenreeks als dit het eerste teken is. Ik weet zeker dat er een nettere manier is om het te doen, maar het werkte voor mij. :) Functie CusVlookup(pValue As String, pWorkRng As Range, pIndex As Long) Dim rng As Range Dim xResult As String xResult = "" Voor elke rng in pWorkRng If rng = pValue Then xResult = xResult & ";" & rng.Offset(1, pIndex - 0) If Left(xResult, 1) = ";" Dan xResult = MIDDEN(xResult,1) End If End If Next CusVlookup = xResult End Functie
Deze opmerking is gemaakt door de moderator op de site
Maak indien voorwaarde voor resultaat indien leeg.

Functie CusVlookup(lookupval, lookuprange As Range, indexcol As Long)
'bijwerken door' Extendoffice 20151118
Dim x als bereik
Dim resultaat As String
resultaat = ""
Voor elke x In zoekbereik
Als x = opzoekwaarde Dan
Als Niet resultaat = "" Dan
resultaat = resultaat & " " & x.Offset(0, indexcol - 1)
Anders
resultaat = x.Offset(0, indexcol - 1)
End If
Volgende x
CusVlookup = resultaat
End Function
Deze opmerking is gemaakt door de moderator op de site
Dit is verbazingwekkend, maar ik ben op zoek naar iets anders, ik heb een tabel met RollNo StudentName sub1, sub2, sub3 ... Totaal resultaat. Als ik Rollnumber invoer, zou het een resultaat moeten geven als "SName Sub1 64, sub2 78,... Totaal 389, Resultaat geslaagd", kan dat
Deze opmerking is gemaakt door de moderator op de site
Is er een manier om de dubbele waarden in de concatenate te verwijderen?
Deze opmerking is gemaakt door de moderator op de site
Hallo, Jacob,
Misschien kan het volgende artikel u helpen uw probleem op te lossen.
https://www.extendoffice.com/documents/excel/3381-excel-extract-unique-values-with-criteria.html

Probeer het alsjeblieft, ik hoop dat het je kan helpen!
Deze opmerking is gemaakt door de moderator op de site
Is er een manier om de dubbele waarden slechts één keer weer te geven, met behulp van de vba-code en formule hierboven? Ik weet niet zeker waar ik de countif>1-instructie in de formulebalk of in de vba zelf moet plaatsen. Help alstublieft
Deze opmerking is gemaakt door de moderator op de site
u kunt twee extra voorwaarden toevoegen om lege cellen over te slaan en duplicaten over te slaan: For i = 1 To CriteriaRange.Count
Als CriteriaRange.Cells(i).Waarde = Conditie Dan
Als ConcatenateRange.Cells(i).Value <> "" Dan 'BANKEN OVERSLAAN
Als InStr(xResult, ConcatenateRange.Cells(i).Value) = 0 Dan 'OVERSLAAN ALS DUPLICAAT GEVONDEN
xResult = xResult & Separator & ConcatenateRange.Cells(i).Waarde
End If
End If
End If
Volgende i
Deze opmerking is gemaakt door de moderator op de site
Ik moet zeggen dat ik al 2 dagen een formule probeer te krijgen om meerdere waarden te combineren en ze terug te brengen naar een enkele cel. Deze "How To" heeft me gered!! Hartelijk bedankt! Ik zou het nooit hebben gekregen zonder uw Module!
Ik heb wel 2 vragen. Ik heb de deliminator als een komma in plaats van een spatie en daarom begint het met een komma. Is er een manier om de startkomma te voorkomen, maar de rest te behouden?
Mijn tweede vraag is; Wanneer ik de vulgreep gebruik, verandert dit zowel de bereikwaarden als de celwaarde die ik wil opzoeken. Ik wil dat het doorgaat met het wijzigen van het celnummer dat ik wil opzoeken, maar met dezelfde bereikwaarden. Hoe kan ik dit laten gebeuren?

Heel erg bedankt voor uw hulp!!
Deze opmerking is gemaakt door de moderator op de site
De cusVlookup werkte prima voor mij. Een andere manier om een ​​ander scheidingsteken te hebben, is door er twee vervangende functies in te wikkelen. De eerste (van binnen naar buiten) vervangt de eerste spatie zonder spatie, de tweede vervangt alle andere spatie door een " / " in de mijne. Zou "," kunnen gebruiken als je komma's wilt.
=VERVANGING(VERVANGING(cusVlookup(D2,Tabel1,2)," ","",1)," "," / ")

Als uw opzoekwaarde niet de eerste kolom is, kunt u 0 of negatieve getallen gebruiken om naar de linkerkolom te gaan.
=VERVANGING(VERVANGING(cusVlookup(D2,Tabel1,-1)," ","",1)," "," / ")
Deze opmerking is gemaakt door de moderator op de site
Hallo, jef,
Bedankt voor het delen, je moet een warmhartige man zijn.
Deze opmerking is gemaakt door de moderator op de site
Dit werkt prima voor mij - is er een manier om het te veranderen dat het controleert of de cel eerder dan een volledige overeenkomst bevat? In principe heb ik een lijst met taken waarbij:
Kolom A: Afhankelijkheden (bijv. 10003 10004 10008)
Kolom B: Taakreferentie (bijv. 10001)
Kolom C: Afhankelijke taken (de kolom voor het resultaat van de formule) - waar het de taakverwijzing zou opzoeken om te zien welke rijen deze bevatten in kolom A, en vervolgens de taakverwijzing van die taken weer te geven.

bv:

Rij | Kolom A | Kolom B | Kolom C
1 | | 10001 | 10002 10003
2 | 10001 | 10002 | 10003
3 | 10001 10002 | 10003 |
Deze opmerking is gemaakt door de moderator op de site
je zou de functie Instr() willen gebruiken die op iets in een reeks tekst in een cel zal controleren. U kunt ook Left() en Right() gebruiken als u op zoek bent naar de begin- of einddetails.
Deze opmerking is gemaakt door de moderator op de site
Is er een manier om de unieke "naam" voor "class1" te krijgen
Deze opmerking is gemaakt door de moderator op de site
Hallo, sym-john,
Misschien kan het onderstaande artikel uw probleem oplossen, bekijk het alstublieft:
https://www.extendoffice.com/documents/excel/3381-excel-extract-unique-values-with-criteria.html
Er zijn nog geen reacties geplaatst
Laat uw commentaar
Posten als gast
×
Beoordeel dit bericht:
0  Personages
Voorgestelde locaties