Direkt zum Inhalt

Wie kann man Text anhand von Kriterien in Excel einfach verketten?

Angenommen, ich habe eine Spalte mit ID-Nummern, die einige Duplikate und eine Spalte mit Namen enthält, und jetzt möchte ich die Namen basierend auf den eindeutigen ID-Nummern verketten, wie im linken Screenshot gezeigt, um den Text anhand von Kriterien schnell zu kombinieren. Wie könnten wir das tun? in Excel tun?

doc kombiniert Text basierend auf Kriterien 1

Verketten Sie Text basierend auf Kriterien mit der benutzerdefinierten Funktion

Verketten Sie Text anhand von Kriterien mit Kutools for Excel


Um Text mit den eindeutigen ID-Nummern zu kombinieren, können Sie zuerst die eindeutigen Werte extrahieren und dann eine benutzerdefinierte Funktion erstellen, um die Namen basierend auf der eindeutigen ID zu kombinieren.

1. Nehmen Sie die folgenden Daten als Beispiel. Sie müssen zuerst die eindeutigen ID-Nummern extrahieren. Wenden Sie diese Array-Formel an: =IFERROR(INDEX($A$2:$A$15, MATCH(0,COUNTIF($D$1:D1, $A$2:$A$15), 0)),""), Geben Sie diese Formel in eine leere Zelle ein, z. B. D2, und drücken Sie dann Strg + Umschalt + Enter Schlüssel zusammen, siehe Screenshot:

doc kombiniert Text basierend auf Kriterien 2

Tipp: In der obigen Formel A2: A15 ist der Listendatenbereich, aus dem Sie eindeutige Werte extrahieren möchten. D1 ist die erste Zelle der Spalte, in der Sie das Extraktionsergebnis ausgeben möchten.

2. Ziehen Sie dann den Füllpunkt nach unten, um alle eindeutigen Werte zu extrahieren, bis Leerzeichen angezeigt werden (siehe Abbildung):

doc kombiniert Text basierend auf Kriterien 3

3. In diesem Schritt sollten Sie eine erstellen Benutzerdefinierte Funktion Um die Namen basierend auf den eindeutigen ID-Nummern zu kombinieren, halten Sie bitte die Taste gedrückt ALT + F11 Tasten, und es öffnet die Microsoft Visual Basic für Applikationen Fenster.

4. Klicken Sie Insert > Modulund fügen Sie den folgenden Code in das Feld ein Modul Fenster.

VBA-Code: Verketten Sie Text anhand von Kriterien

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. Speichern und schließen Sie dann diesen Code, kehren Sie zu Ihrem Arbeitsblatt zurück und geben Sie diese Formel in Zelle E2 ein. = CONCATENATEIF ($ A $ 2: $ A $ 15, D2, $ B $ 2: $ B $ 15, ",") , siehe Screenshot:

doc kombiniert Text basierend auf Kriterien 4

6. Ziehen Sie dann den Füllpunkt nach unten zu den Zellen, auf die Sie diese Formel anwenden möchten. Alle entsprechenden Namen wurden basierend auf den ID-Nummern kombiniert (siehe Abbildung):

doc kombiniert Text basierend auf Kriterien 5

Tipps:

1. In der obigen Formel A2: A15 sind die Originaldaten, die Sie basierend auf kombinieren möchten, D2 ist der eindeutige Wert, den Sie extrahiert haben, und B2: B15 ist die Namensspalte, die Sie miteinander kombinieren möchten.

2. Wie Sie sehen können, habe ich die durch Komma getrennten Werte kombiniert. Sie können beliebige andere Zeichen verwenden, indem Sie das Komma „,“ der Formel nach Bedarf ändern.


Wenn Sie Kutools for ExcelMit seinen Erweiterte Zeilen kombinieren Dienstprogramm, können Sie die Textbasis schnell und bequem nach Kriterien verketten.

Kutools for Excel : Mit mehr als 300 praktischen Excel-Add-Ins können Sie diese innerhalb von 30 Tagen ohne Einschränkung testen.

Nach der Installation Kutools for ExcelGehen Sie wie folgt vor:

1. Wählen Sie den Datenbereich, den Sie kombinieren möchten, anhand einer Spalte aus.

2. Klicken Sie Kutoolen > Zusammenführen & Teilen > Erweiterte Zeilen kombinieren, siehe Screenshot:

3. In dem Zeilen basierend auf Spalte kombinieren Klicken Sie im Dialogfeld auf die Spalte ID und dann auf Primärschlüssel Um diese Spalte als Schlüsselspalte zu definieren, auf der Ihre kombinierten Daten basieren, siehe Screenshot:

doc kombiniert Text basierend auf Kriterien 7

4. Und dann klick Name und Vorname Spalte, in der Sie die Werte kombinieren möchten, und klicken Sie dann auf Kombinieren Option und wählen Sie ein Trennzeichen für die kombinierten Daten, siehe Screenshot:

doc kombiniert Text basierend auf Kriterien 8

5. Klicken Sie nach Abschluss dieser Einstellungen auf OK Um den Dialog zu verlassen, wurden die Daten in Spalte B basierend auf der Schlüsselspalte A kombiniert. Siehe Screenshot:

doc kombiniert Text basierend auf Kriterien 9

Mit dieser Funktion wird das folgende Problem so schnell wie möglich behoben:

Wie kombiniere ich mehrere Zeilen zu einer und summiere Duplikate in Excel?

Laden Sie Kutools for Excel jetzt herunter und testen Sie es kostenlos!


Kutools for Excel: Mit mehr als 300 praktischen Excel-Add-Ins können Sie es innerhalb von 30 Tagen ohne Einschränkung testen. Jetzt herunterladen und kostenlos testen!

Beste Office-Produktivitätstools

🤖 Kutools KI-Assistent: Revolutionieren Sie die Datenanalyse basierend auf: Intelligente Ausführung   |  Code generieren  |  Erstellen Sie benutzerdefinierte Formeln  |  Analysieren Sie Daten und erstellen Sie Diagramme  |  Rufen Sie Kutools-Funktionen auf...
Beliebte Funktionen: Suchen, markieren oder identifizieren Sie Duplikate   |  Leere Zeilen löschen   |  Kombinieren Sie Spalten oder Zellen, ohne Daten zu verlieren   |   Runde ohne Formel ...
Super-Lookup: VLookup mit mehreren Kriterien    VLookup mit mehreren Werten  |   VLookup über mehrere Blätter hinweg   |   Unscharfe Suche ....
Erweiterte Dropdown-Liste: Erstellen Sie schnell eine Dropdown-Liste   |  Abhängige Dropdown-Liste   |  Mehrfachauswahl Dropdown-Liste ....
Spaltenmanager: Fügen Sie eine bestimmte Anzahl von Spalten hinzu  |  Spalten verschieben  |  Schalten Sie den Sichtbarkeitsstatus ausgeblendeter Spalten um  |  Vergleichen Sie Bereiche und Spalten ...
Ausgewählte Funktionen: Rasterfokus   |  Designansicht   |   Große Formelleiste    Arbeitsmappen- und Blattmanager   |  Ressourcen (Autotext)   |  Datumsauswahl   |  Arbeitsblätter kombinieren   |  Zellen verschlüsseln/entschlüsseln    Senden Sie E-Mails nach Liste   |  Superfilter   |   Spezialfilter (Filter fett/kursiv/durchgestrichen...) ...
Top 15 Toolsets12 Text Tools (Text hinzufügen, Zeichen entfernen, ...)   |   50+ Chart Typen (Gantt-Diagramm, ...)   |   40+ Praktisch Formeln (Berechnen Sie das Alter basierend auf dem Geburtstag, ...)   |   19 Einfügen Tools (QR-Code einfügen, Bild aus Pfad einfügen, ...)   |   12 Umwandlung (Conversion) Tools (Zahlen zu Wörtern, Currency Conversion, ...)   |   7 Zusammenführen & Teilen Tools (Erweiterte Zeilen kombinieren, Zellen teilen, ...)   |   ... und mehr

Verbessern Sie Ihre Excel-Kenntnisse mit Kutools für Excel und erleben Sie Effizienz wie nie zuvor. Kutools für Excel bietet über 300 erweiterte Funktionen, um die Produktivität zu steigern und Zeit zu sparen.  Klicken Sie hier, um die Funktion zu erhalten, die Sie am meisten benötigen ...

Beschreibung


Office Tab Bringt die Oberfläche mit Registerkarten in Office und erleichtert Ihnen die Arbeit erheblich

  • Aktivieren Sie das Bearbeiten und Lesen von Registerkarten in Word, Excel und PowerPoint, Publisher, Access, Visio und Project.
  • Öffnen und erstellen Sie mehrere Dokumente in neuen Registerkarten desselben Fensters und nicht in neuen Fenstern.
  • Steigert Ihre Produktivität um 50 % und reduziert jeden Tag Hunderte von Mausklicks für Sie!
Comments (38)
No ratings yet. Be the first to rate!
This comment was minimized by the moderator on the site
Great function! Is there a way to maintain the format in the cell it's concatenating data from? i.e. $45.07, $555.34, $0.00, $0.25, -$12.25 I've figured out how to stack them with wrap text and CHAR(10) in place of "," but having trouble keeping the format. I will be using this for a mail merge in Word.
This comment was minimized by the moderator on the site
Hello, Laurie,If you want to keep the cell formatting when concatenating the data, you can apply the Advanced Combine Rows feature of Kutools for Excel, in the dialog box, after finishing the settings, you just need to check Use formatted values option, and all the data formatting will be kept as you need.
You can download Kutools for Excel and free trial 30-day.
This comment was minimized by the moderator on the site
Is there any way to add "and" instead of "," before the last data? (For example: D2355, D2273, D2397, D2600 and D2386)
This comment was minimized by the moderator on the site
Hi, Hossain,May be there is not a direct method for solving your problem, you can add another formula to convert the last comma to the text "and".=SUBSTITUTE(E2,","," and ",LEN(E2)-LEN(SUBSTITUTE(E2,",","")))
Please try, thank you!
This comment was minimized by the moderator on the site
It worked like a charm sir. Thank you so much.
This comment was minimized by the moderator on the site
Great function, exactly what I needed! Works like a charm
This comment was minimized by the moderator on the site
Hi,

Very helpful VBA solution. Thank you kindly! My question is: Is there a way to change the code or function for multiple criteria? Although the code works for me, I need it to show values corresponding to a timestamp-interval (>= timestamp A, <= timestamp B)


Thank you in advance. :)
This comment was minimized by the moderator on the site
Is there a way to assign this to a button? On large data ranges it takes a while, so ideally I only want it to start the concatenate process once I've finished doing everything else in the sheet. I tried adding a trigger myself but it stopped working completely
This comment was minimized by the moderator on the site
BTW i used the VBA solution
This comment was minimized by the moderator on the site
Extremely helpfull! After editing it for my sheet i have #VALUE! for some of the unique values.
I did a countif to see if it could be that there are too many names to concatenate. The two unique values that have the #VALUE! error have 13635 and 19810 results. Is there a way to overcome this?
This comment was minimized by the moderator on the site
How can I ignore blank cells? mine currently displays this:

";;;;;;;;;"

I'd like for the 1st, 3rd and last 3 semi colons not to there/show. TIA
This comment was minimized by the moderator on the site
Hello, Chantelle
When concatenating the cell values ignoring the blank cells, please apply the below User Defined Function:

Function ConcatenateIf(CriteriaRange As Range, Condition As Variant, ConcatenateRange As Range, Optional Separator As String = ",") As Variant
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
If ConcatenateRange.Cells(i).Value <> "" Then
xResult = xResult & Separator & ConcatenateRange.Cells(i).Value
End If
End If
Next i
If xResult <> "" Then
xResult = VBA.Mid(xResult, VBA.Len(Separator) + 1)
End If
ConcatenateIf = xResult
Exit Function
End Function

Please try it, hope it can help you!
This comment was minimized by the moderator on the site
thank you very much! This was so simple and helped a lot!!
This comment was minimized by the moderator on the site
Is it possible to replace the comma splitter with a line break, i.e. char(10)? Many thanks.
This comment was minimized by the moderator on the site
Hello, David,

To combine the cells with line break, the following User Defined Function may help you.

Function ConcatenateIf_LineBreak(CriteriaRange As Range, Condition As Variant, ConcatenateRange As Range, Optional Separator As String = ",") As Variant
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 & vbCrLf & ConcatenateRange.Cells(I).Value
End If
Next I
If xResult <> "" Then
xResult = VBA.Mid(xResult, VBA.Len(Separator) + 1)
End If
ConcatenateIf_LineBreak = xResult
Exit Function
End Function

After pasting this code, then apply this formula: =ConcatenateIf_LineBreak(A2:A13,F2,B2:B13,",").

After getting the results with this formula, you should click the Wrap Text to get the correct results you need.
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