Kurs
Die Erstellung von gut formatiertem Text aus Excel-Daten ist ein häufiges Bedürfnis, aber das Aneinanderreihen von Werten kann unübersichtlich werden. Excel bietet mit der Funktion TEXTJOIN()
eine unkomplizierte Lösung, mit der du Textbereiche mit einem Trennzeichen zusammenfassen und sogar leere Zellen überspringen kannst.
In diesem Artikel gehe ich auf die Grundlagen von TEXTJOIN()
ein, zeige, wie sie im Vergleich zu ähnlichen Funktionen wie CONCAT()
und CONCATENATE()
funktioniert, und gehe praktische Szenarien durch, in denen sie glänzt. Im weiteren Verlauf werde ich für TEXTJOIN()
plädieren, weil ich glaube, dass es jetzt das bessere Werkzeug zum Kombinieren von Text ist, und ich denke, dass du am Ende des Artikels auch überzeugt sein wirst.
Wie Excel TEXTJOIN() funktioniert
Zuerst wollen wir uns klar machen, was TEXTJOIN()
eigentlich macht und warum seine Syntax so viel flexibler ist als die der Vorgänger.
Im Grunde genommen kannst du mit TEXTJOIN()
Textwerte aus mehreren Zellen zusammenfügen, indem du ein Trennzeichen (z. B. ein Komma, ein Leerzeichen oder ein Semikolon) zwischen ihnen einfügst. Im Gegensatz zu älteren Ansätzen kann es einen ganzen Bereich auf einmal verarbeiten, und du kannst entscheiden, ob Leerzeichen ignoriert werden sollen.
Hier ist die Syntax:
=TEXTJOIN(delimiter, ignore_empty, text1, [text2], ...)
-
delimiter
: Das oder die Zeichen, die du zwischen den einzelnen Textteilen haben möchtest (oft ein Komma, ein Leerzeichen usw.) -
ignore_empty
: TRUE, um leere Zellen zu überspringen, FALSE, um sie einzuschließen -
text1, [text2], …
: Die Zellen, Bereiche oder Werte, die du kombinieren willst
Nehmen wir zum Beispiel an, du hast Werte in A1, A2 und A3. Du willst sie, getrennt durch Kommas, zusammenfügen und dabei Leerzeichen auslassen:
=TEXTJOIN(",", TRUE, A1:C1)
Wenn A2 leer ist, erhältst du nur die Werte aus A1 und A3, getrennt durch ein Komma.
Warum ist das wichtig? Bei anderen Funktionen (ich denke da an CONCATENATE()
) musst du jede Zelle einzeln auflisten, und sie überspringen keine Leerzeichen. TEXTJOIN()
ist kürzer in der Eingabe und viel einfacher zu pflegen.
TEXTJOIN() vs. CONCATENATE() vs. CONCAT()
Nachdem wir nun die Grundlagen von TEXTJOIN()
kennengelernt haben, lohnt es sich, den direkten Vergleich mit älteren Excel-Textfunktionen zu ziehen. Wenn du bisher CONCATENATE()
oder CONCAT()
benutzt hast, fragst du dich vielleicht, warum du wechseln solltest.
-
TEXTJOIN()
: Damit kannst du ein Trennzeichen angeben und Leerzeichen einfach überspringen. Akzeptiert Bereiche. -
CONCAT()
: Verbindet Bereiche oder einzelne Textzellen, aber du kannst kein Begrenzungszeichen angeben. Er überspringt keine Leerzeichen. -
CONCATENATE()
: Die älteste Option. Zwingt dich, jede Zelle einzeln anzugeben. Kein Begrenzungsfeld, keine Bereichsunterstützung.
Als Beispiel fügen wir die Werte in B1, B2 und B3 mit einem Semikolon dazwischen zusammen. Hier siehst du, wie die verschiedenen Funktionen aussehen:
=TEXTJOIN(";", TRUE, A1:C1)
=CONCAT(B1:D1)
=CONCATENATE(B1, C1, D1)
Beachte, dass TEXTJOIN()
die einzige Seite ist, bei der du ohne viel Aufwand ein Trennzeichen auswählen kannst. Bei CONCAT()
oder CONCATENATE()
musst du die Trennzeichen manuell einfügen, wenn du sie haben willst:
=B1 & ";" & C1 & ";" & D1
Je nachdem, wie deine Daten strukturiert sind, kann TEXTJOIN()
auch eine leere Zelle auslassen. CONCATENATE()
und CONCAT()
berücksichtigen das Leerzeichen.
Umgang mit Begrenzungszeichen und leeren Zellen
Erlaube mir, ein wenig mehr über diese beiden häufigen Probleme zu sprechen: das Hinzufügen konsistenter Trennzeichen und das Ignorieren leerer Zellen.
Benutzerdefinierte Begrenzungszeichen
Wahrscheinlich willst du verschiedene Trennzeichen für verschiedene Fälle. Du kannst Kommas, Pipes, Zeilenumbrüche oder sogar andere Zeichen als Trennzeichen verwenden.
Um mit einem vertikalen Balken zu verbinden, benutze dies:
=TEXTJOIN("|", TRUE, D1:G1)
Du kannst auch mehr Nischendinge machen. Hier verwende ich ein Leerzeichen - Leerzeichen als Trennzeichen:
=TEXTJOIN(" - ", TRUE, D1:G1)
Du könntest sogar CHAR(10)
für einen Zeilenumbruch verwenden, allerdings musst du dazu den Text umbrechen in der Zellformatierung aktivieren, um den Effekt zu sehen.
Leerzeichen überspringen
Eines der frustrierendsten Dinge bei der Datenzusammenstellung ist der Umgang mit Leerzeichen. TEXTJOIN()
gibt dir die Kontrolle. Wenn du das Argument ignore_empty
auf TRUE
setzt, werden Leerzeichen ganz weggelassen.
=TEXTJOIN(", ", TRUE, E1:G1)
Ergebnis: "Rot, Blau". Die leere Zelle (F2) wird ignoriert, du bekommst also kein zusätzliches Komma.
Wenn du ignore_empty
auf FALSE
setzt:
=TEXTJOIN(", ", FALSE, E1:G1)
Jetzt ist das Ergebnis: "Rot, , Blau". Das zusätzliche Komma fällt auf (und ist normalerweise nicht das, was du willst). Meiner Erfahrung nach ist TRUE
normalerweise am besten.
All dies mag wie ein kleiner Unterschied erscheinen, aber wenn du diese Funktion ein bisschen übst, wirst du bei der Nachbearbeitung Zeit sparen.
Dynamische Listen und Beschriftungen erstellen
Nachdem du nun die Grundlagen kennengelernt hast, wollen wir uns ansehen, wie TEXTJOIN()
Probleme lösen kann. Ich werde mich auf zwei Szenarien konzentrieren, auf die du wahrscheinlich stoßen wirst: das Erstellen dynamischer Zusammenfassungen und das Zusammenstellen von Beschriftungen aus variablen Daten.
Zusammenfassungen aus Benutzereingaben erstellen
Angenommen, du erhebst Umfrageantworten, bei denen die Nutzer eine Reihe von optionalen Fragen mit Ja/Nein beantworten. Nur einige werden antworten, also sind die Ergebnisse auf F1 bis J1 verteilt.
Wenn du nur die Fragen auflisten möchtest, auf die sie mit "Ja" geantwortet haben, kannst du TEXTJOIN()
in Kombination mit IF()
und FILTER()
(mit dynamischen Arrays in neueren Excel-Versionen) verwenden.
Angenommen, G1:G5 enthält den Fragetext, F1:F5 die entsprechenden Ja/Nein-Werte:
=TEXTJOIN(", ", TRUE, FILTER(F2:J2, F1:J1="Yes"))
Jetzt listet deine Ausgabezelle nur die Fragen auf, die der Nutzer mit "Ja" beantwortet hat, getrennt durch Kommas.
Wenn du keine dynamischen Arrays hast, kannst du eine Hilfsspalte erstellen, die den Fragentext nur dann ausgibt, wenn die Antwort Ja lautet, und diesen Hilfsbereich dann mit TEXTJOIN()
verbinden.
Erstellen von benutzerdefinierten Etiketten aus variablen Daten
Stell dir vor, du bereitest Versandetiketten aus einer Tabelle vor, in der einige Felder (wie "Wohnung" oder "Suite") manchmal leer sind. Du willst die Adressbestandteile in einer einzigen Zeile zusammenfassen.
Wenn deine Adresse in H1 ("123 Main St"), H2 ("Apt 4B" oder leer), H3 ("Springfield"), H4 ("IL"), H5 ("62704") steht, würdest du verwenden:
=TEXTJOIN(", ", TRUE, H1:L1)
Wenn H2 leer ist, ist deine Ausgabe trotzdem sauber (keine Doppelkommas!), weil TEXTJOIN()
die leere Zelle überspringt.
Dies sind gängige Beispiele, aber die gleiche Logik gilt überall dort, wo du Daten mit optionalen Feldern oder bedingten Einschlüssen zusammenführst.
Andere Dinge zu beachten
So praktisch TEXTJOIN()
auch ist, es gibt ein paar Kleinigkeiten:
Mehrere Bereiche mit TEXTJOIN() verwenden
Eine Sache, die du über TEXTJOIN()
wissen solltest, ist, wie es mit mehreren Bereichen umgeht. Du kannst in mehr als einem Bereich bestehen, auch wenn sie nicht nebeneinander liegen, solange du sie getrennt auflistest:
=TEXTJOIN(", ", TRUE, B1:D1, B2:D2)
Das funktioniert sehr gut. Excel kombiniert die Werte aus beiden Bereichen und verbindet sie. Denk daran: Du kannst sie nicht als ein einziges Array wie (A1:A3,C1:C3)
schreiben. Du musst jeden Bereich als eigenes Argument auflisten.
Verschachtelte Funktionen und dynamische Arrays
Wenn du TEXTJOIN()
als Teil einer dynamischen Array-Formel verwendest (wie bei UNIQUE()
oder FILTER()
), denke daran, dass deine Trennzeichen- und ignore_empty
Argumente immer noch Einzelwerte sein sollten. Wenn du dort Arrays verwendest, wird ein #VALUE!
Fehler zurückgegeben.
Begrenzungszeichen und endgültige Formatierung
Manchmal willst du kein Trennzeichen (du willst einfach den ganzen Text zusammenfügen). Setze das Trennzeichen auf ""
(d.h. einen leeren String):
=TEXTJOIN("", TRUE, A1:C1)
Sei dir nur bewusst: Wenn du das Trennzeichen weglässt, verlierst du den Hauptvorteil der Funktion gegenüber CONCAT()
.
Wenn du Listen zur Verwendung außerhalb von Excel erstellen willst (z. B. CSV-Uploads), achte auf zusätzliche Leerzeichen, unerwartete Zeilenumbrüche oder Zeichenkodierungen (vor allem, wenn du Symbole oder Unicode verwendest).
Verwandte Funktionen und fortgeschrittene Techniken
Wenn du dich mit TEXTJOIN()
vertraut gemacht hast, fragst du dich vielleicht, wie sie mit anderen "dynamischen" Excel-Funktionen zusammenpasst. Durch die Kombination mit UNIQUE()
, FILTER()
oder SORT()
wird sie oft noch leistungsfähiger.
Angenommen, du möchtest alle eindeutigen Produktkategorien aus einer Liste zusammenführen:
=TEXTJOIN(", ", TRUE, UNIQUE(TRANSPOSE(A1:E1)))
Hinweis: UNIQUE()
ist in Excel standardmäßig spaltenorientiert. Da ich mit einer Zeilegearbeitet habe, musste ich auch TRANSPOSE() verwenden.
Oder du willst nur diejenigen, die eine bestimmte Bedingung erfüllen:
=TEXTJOIN(", ", TRUE, FILTER(A1:C1, A2:C2="Active"))
Beide Beispiele zeigen, wie TEXTJOIN()
Daten ohne Hilfsspalten oder manuelles Filtern zusammenfassen oder melden kann.
Fazit
Wenn du noch CONCATENATE()
verwendest oder Zellen manuell aneinander reihst, sparst du durch den Wechsel zu TEXTJOIN()
Zeit. (Ich verspreche es!)
Außerdem möchte ich hinzufügen, dass das Lernen von TEXTJOIN()
dir hilft, in Bereichen zu denken. Diese Denkweise zahlt sich aus, wenn du die dynamischen Array-Funktionen von Excel und andere modernere Ansätze verwendest. Nimm an unserem Kurs Excel-Funktionen für Fortgeschrittene teil, um weiter zu lernen.
