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

Hoe eenvoudig tekst samenvoegen op basis van criteria in Excel?

Stel dat ik een kolom met ID-nummers heb die enkele duplicaten en een kolom met namen bevat, en nu wil ik de namen samenvoegen op basis van de unieke ID-nummers zoals het linker screenshot laat zien, om de tekst snel te combineren op basis van criteria, hoe kunnen we doen in Excel?

doc tekst combineren op basis van criterium 1

Voeg tekst samen op basis van criteria met door de gebruiker gedefinieerde functie

Voeg tekst samen op basis van criteria met Kutools voor Excel


Om tekst te combineren met de unieke ID-nummers, kunt u eerst de unieke waarden extraheren en vervolgens een door de gebruiker gedefinieerde functie maken om de namen te combineren op basis van de unieke ID.

1. Neem de volgende gegevens als voorbeeld, u moet eerst de unieke ID-nummers extraheren, pas deze matrixformule toe: =IFERROR(INDEX($A$2:$A$15, MATCH(0,COUNTIF($D$1:D1, $A$2:$A$15), 0)),"")Voer deze formule in een lege cel in, bijvoorbeeld D2, en druk vervolgens op Ctrl + Shift + Enter sleutels samen, zie screenshot:

doc tekst combineren op basis van criterium 2

Tip: In de bovenstaande formule, A2: A15 is het lijstgegevensbereik waaruit u unieke waarden wilt extraheren, D1 is de eerste cel van de kolom waarvan u het extractieresultaat wilt weergeven.

2. En sleep vervolgens de vulgreep naar beneden om alle unieke waarden te extraheren totdat lege plekken worden weergegeven, zie screenshot:

doc tekst combineren op basis van criterium 3

3. In deze stap moet u een Door de gebruiker gedefinieerde functie Om de namen te combineren op basis van de unieke ID-nummers, houdt u de ALT + F11 toetsen, en het opent de Microsoft Visual Basic voor toepassingen venster.

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

VBA-code: voeg tekst samen op basis van criteria

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

5. Sla vervolgens deze code op en sluit deze, ga terug naar uw werkblad en voer deze formule in cel E2 in, = CONCATENATEIF ($ A $ 2: $ A $ 15, D2, $ B $ 2: $ B $ 15, ",") , zie screenshot:

doc tekst combineren op basis van criterium 4

6. Sleep vervolgens de vulgreep naar de cellen waarop u deze formule wilt toepassen en alle bijbehorende namen zijn gecombineerd op basis van de ID-nummers, zie screenshot:

doc tekst combineren op basis van criterium 5

Tips:

1. In de bovenstaande formule, A2: A15 zijn de originele gegevens die u wilt combineren op basis van, D2 is de unieke waarde die u heeft geëxtraheerd, en B2: B15 is de naamkolom die u met elkaar wilt combineren.

2. Zoals u kunt zien, heb ik de waarden gecombineerd die door komma's worden gescheiden. U kunt andere tekens gebruiken door de komma "," van de formule naar behoefte te wijzigen.


Als je Kutools for Excel, Met Geavanceerd Combineer rijen hulpprogramma, kunt u de tekst op basis van criteria snel en gemakkelijk samenvoegen.

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

Na het installeren van Kutools for Excel, doe als volgt:

1. Selecteer het gegevensbereik dat u wilt combineren op basis van één kolom.

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

3. In de Combineer rijen op basis van kolom dialoogvenster, klik op de ID-kolom en klik vervolgens op Hoofdsleutel Zie screenshot om van deze kolom de sleutelkolom te maken waarop uw gecombineerde gegevens zijn gebaseerd:

doc tekst combineren op basis van criterium 7

4. En klik vervolgens op Naam kolom waarvan u de waarden wilt combineren en klik op Combineren optie en kies een scheidingsteken voor de gecombineerde gegevens, zie screenshot:

doc tekst combineren op basis van criterium 8

5. Klik na het voltooien van deze instellingen op OK om het dialoogvenster te verlaten, en de gegevens in kolom B zijn gecombineerd op basis van de sleutelkolom A. Zie screenshot:

doc tekst combineren op basis van criterium 9

Met deze functie wordt het volgende probleem zo snel mogelijk opgelost:

Hoe combineer je meerdere rijen tot één en som duplicaten op in Excel?

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 (38)
Nog geen beoordelingen. Beoordeel als eerste!
Deze opmerking is gemaakt door de moderator op de site
Dit is een uitstekende oplossing (VBA-code) en het beantwoordde binnen enkele minuten aan mijn vereisten. Ik zal uw site doorverwijzen naar anderen en ik zal u bezoeken voor alles wat ik in de toekomst nodig heb.
Deze opmerking is gemaakt door de moderator op de site
Bedankt voor deze code. Het was PRECIES wat ik nodig had. Je hebt me veel moeite bespaard, heel erg bedankt.
Deze opmerking is gemaakt door de moderator op de site
Bedankt voor het posten, dit is precies wat ik zoek. Ik schijn de vba-code niet correct op te slaan. Ik krijg een foutmelding over een ambigue naam gevonden. Om het even welke suggesties of stap voor stap op de VBA-stap van dit project? Bedankt
Deze opmerking is gemaakt door de moderator op de site
Kan deze tool hoofdlettergevoelige combinaties aan zoals jABC 123 abc 345 ABc 678 ABC 912
Deze opmerking is gemaakt door de moderator op de site
Deze VBA-code heeft de dag voor mij gered. Dank u!
Deze opmerking is gemaakt door de moderator op de site
Ik ben op zoek naar een manier om een ​​variant van deze code te gebruiken om een ​​variantenlijst te maken op basis van de hoofdvariant. Met behulp van uw voorbeeldgegevens zou ik kolommen A en B moeten combineren tot unieke id's en die id's vervolgens aan elke rij moeten samenvoegen op basis van de waarde in kolom A, exclusief de waarde van uit de gecombineerde voor die rij, en de rest in alfasortering volgorde: Master id naam id variant lijst CN20150012 Lucy CN20150012-Lucy CN20150012-Andy CN20150012-Monica CN20150012-Phiby US20150011 Tommas US20150011-Tommas US20150011-Rose CN20150012 Monica CN20150012-Monica CN20150012-Andy CN20150012-Lucy20150012 CN20150012-Lucy20150012 CN20150012-Lucy20150012 -Andy CN20150012-Lucy CN20150011-Monica US20150011 Rose US20150011-Rose US20150014-Tommas UK20150014 Peter UK20150014-Peter UK20150014-Anith UK20150014-Kristi UK20150010-Libin JP20150010 Ramon JP20150010-Ramon JP20150010-Brenda JP20150014-Brenda JP20150014-Jame UK -Kristi UK20150014-Peter UK20150014 Anith UK20150014-Anith UK20150014-Kristi UK20150014-Libin UK20150014-Peter JP20150014 James JP20150014 20150010-James JP20150010-Brenda JP20150010-James JP20150010-Matus CN20150010 Andy CN20150012-Andy CN20150012-Lucy CN20150012-Monica CN20150012-Phiby UK20150012 Matus UK20150014-Matus JP20150014-Brenda JP20150010-Brenda JP20150010-James UK20150014 UK Peter JP20150014 Brenda JP20150014-Brenda JP20150014-James JP20150014-Ramon Ik heb een vel met meer dan 20150010 regels, elk item wordt geleverd met maximaal 20150010 varianten. Dit handmatig proberen te doen is onmogelijk, maar ik kan geen oplossing vinden die aan mijn behoeften voldoet.
Deze opmerking is gemaakt door de moderator op de site
Het kost meer tijd om dezelfde formule concatenateif() bij te werken. ik heb 5000 rijen. en het is meer dan 2 uur nu, het wordt nog steeds bijgewerkt: (Is er een oplossing om het snel te laten werken?
Deze opmerking is gemaakt door de moderator op de site
Gedetailleerd en gemakkelijk te begrijpen uitgelegd, heeft echt geholpen toen ik in exact dezelfde situatie vastzat.
Deze opmerking is gemaakt door de moderator op de site
Super geholpen en mooi uitgelegd
Deze opmerking is gemaakt door de moderator op de site
Geweldig bedankt! Ik gebruikte de VBA-oplossing en het werkte prima.
Deze opmerking is gemaakt door de moderator op de site
Super goed!!! Hartelijk bedankt!
Deze opmerking is gemaakt door de moderator op de site
Het werkt niet voor het big data-bereik. Ik ontdekte dat het werkbereik maximaal A2:A362 is. We zouden het op prijs stellen als u de oplossing voor het big data-bereik deelt, zoals A2:A200000 .... Dank u!
Deze opmerking is gemaakt door de moderator op de site
Werkt prima alleen traag. Ik doe het met 27k tekstregels in Excel, zet het gewoon op gang, ga voor een brouwsel en laat het draaien
Deze opmerking is gemaakt door de moderator op de site
Het werkt niet voor het big data-bereik. Ik ontdekte dat het werkende databereik maximaal A2:A362 is. We zouden het op prijs stellen als u de oplossing deelt om het bredere gegevensbereik te dekken, zoals A2:A200000 ..... Dank u!
Deze opmerking is gemaakt door de moderator op de site
Hoi! concactenateif is precies wat ik zocht. Maar krijg het helaas niet werkend Krijg altijd een compileerfout: syntaxisfout. Om het even welke ideeën? In het verleden heb ik bij sommige geïmporteerde VBA-modules gemerkt dat ik de "," moest vervangen door ";" zoals op mijn pc, misschien vanwege mijn regionale instellingen, is dat de enige manier waarop het werkt. Gebruik gretig de ingebouwde sumifs enz. Maar ik begrijp niet waar ik de fout in ga. Nog een mogelijkheid die bij me opkomt, is het feit dat in Office 365 "concat" "concactenate" vervangt. Kun je alsjeblieft helpen? Bij voorbaat dank, Yash
Deze opmerking is gemaakt door de moderator op de site
De code gebruikt enkele niet-afbrekende spaties voor inspringen, deze trippen Excel2016 op. Moeilijk om een ​​onzichtbare fout te ontdekken..
Deze opmerking is gemaakt door de moderator op de site
Ik had een probleem nadat ik deze code in Excel 2016 had geplakt - het bevat niet-reguliere spaties (misschien niet-afbrekende spaties?) die syntaxisfouten veroorzaken die niet duidelijk zijn, hoe goed je ook kijkt, omdat ze onzichtbaar zijn! Het zijn de inspringruimten die het probleem vormen. Plak de code in Word en schakel verborgen tekens in om ze te zien.
Deze opmerking is gemaakt door de moderator op de site
Wauw!! Genie! Werkte als een tierelier! Er ZIJN spaties die worden weergegeven als een ander personage. Heel erg bedankt Dave! Benieuwd hoe je op het idee bent gekomen! Vraag me ook af hoe het werkt voor sommige andere piepgeluiden. Hoe dan ook, nogmaals bedankt!
Deze opmerking is gemaakt door de moderator op de site
Is er een manier om dit op Mac te doen????
Het is precies wat ik nodig heb - laat het me weten (of als een Mac-software het zou doen dat je weet). Bedankt
Deze opmerking is gemaakt door de moderator op de site
Is er een manier om deze CONCATENATEIF-functie op een apart blad toe te passen? Het werkt als ik het in hetzelfde blad zet als invoergegevens, maar ik heb beide tabellen op verschillende bladen nodig en het werkt niet.
Deze opmerking is gemaakt door de moderator op de site
Ja, wat u wilt doen, is de functie aan een module toevoegen. Ga naar de VBA-editor, klik met de rechtermuisknop op "VBAProject" in de Projectverkenner, muis over het menu-item "Invoegen" en kies in dat submenu "Module". Alle functies die u daar invoert, kunnen op elk blad in uw werkmap worden gebruikt.
Deze opmerking is gemaakt door de moderator op de site
Hallo allemaal, ik krijg een foutmelding #NAME? wanneer ik formules CONCATENATEIF toepas in Excel-bestand na het instellen van VBA-code hiervoor, kan iemand me helpen om het op te lossen, bedankt som uch
Deze opmerking is gemaakt door de moderator op de site
Zo gemakkelijk, bedankt :)
Deze opmerking is gemaakt door de moderator op de site
Is het mogelijk om de kommasplitser te vervangen door een regeleinde, bijv. char (10)? Erg bedankt.
Deze opmerking is gemaakt door de moderator op de site
Hallo David,

Om de cellen te combineren met regeleinde, kan de volgende door de gebruiker gedefinieerde functie u helpen.

Functie ConcatenateIf_LineBreak(CriteriaRange As Range, Condition As Variant, ConcatenateRange As Range, Optionele Separator As String = ",") As Variant
Dim xResultaat als string
On Error Resume Next
Als CriteriaRange.Count <> ConcatenateRange.Count Dan
ConcatenateIf = CVErr(xlErrRef)
Functie verlaten
End If
Voor I = 1 Naar CriteriaRange.Count
Als CriteriaRange.Cells(I).Value = Conditie Dan
xResult = xResult & vbCrLf & ConcatenateRange.Cells(I).Waarde
End If
Volgende ik
Als xResult <> "" Dan
xResult = VBA.Mid(xResult, VBA.Len(Scheidingsteken) + 1)
End If
ConcatenateIf_LineBreak = xResultaat
Functie verlaten
End Function

Nadat u deze code hebt geplakt, past u deze formule toe: =ConcatenateIf_LineBreak(A2:A13,F2,B2:B13,",").

Nadat u de resultaten met deze formule hebt verkregen, moet u op Tekstterugloop klikken om de juiste resultaten te krijgen die u nodig hebt.
Deze opmerking is gemaakt door de moderator op de site
heel erg bedankt! Dit was zo eenvoudig en heeft veel geholpen!!
Er zijn nog geen reacties geplaatst
Laad meer
Laat uw commentaar
Posten als gast
×
Beoordeel dit bericht:
0  Personages
Voorgestelde locaties