Excel bietet eine Arbeitsmappenfunktion und einen Operator, die beide denselben Zweck haben – Zeichenfolgen zu einer längeren Zeichenfolge zu kombinieren. Die CONCATENATE-Funktion und der kaufmännische Und-Operator (&) haben im Wesentlichen den gleichen Zweck.

Viele Leute verwenden den kaufmännischen Und-Operator gegenüber der CONCATENATE-Funktion, weil sie weniger Eingabe erfordert, aber CONCATENATE würde immens wertvoller werden, wenn es eine Reihe von Zellen handhaben würde.

Leider nicht, aber Sie können Ihre eigene benutzerdefinierte Funktion erstellen, die jede Zelle in einem Bereich sehr gut verkettet.

Betrachten Sie das folgende Makro:

Function Concat1(myRange As Range, Optional myDelimiter As String)

Dim r As Range

For Each r In myRange         Concat1 = Concat1 & r & myDelimiter     Next r     If Len(myDelimiter) > 0 Then         Concat1 = Left(Concat1, Len(Concat1) - Len(myDelimiter))

End If End Function

Diese Funktion erfordert einen Bereich und bietet ein optionales Trennzeichen.

Die letzte „If“ -Anweisung entfernt das letzte abschließende Trennzeichen aus der verketteten Zeichenfolge. Mit der CONCAT1-Funktion können Zellen innerhalb des Bereichs hinzugefügt und gelöscht werden, ohne dass die Wartung durch CONCATENATE- oder kaufmännische Und-Formeln erforderlich ist. Sie müssen die Funktion lediglich auf eine der folgenden Arten aufrufen:

=CONCAT1(C8:E10)

=CONCAT1(C8:E10,"|")

Die zweite Methode zum Aufrufen der Funktion verwendet das optionale Trennzeichen, das zwischen jedem der verketteten Werte aus dem Bereich C8: E10 eingefügt wird. Hierbei gibt es jedoch ein Problem: Wenn eine Zelle in diesem Bereich leer ist, können zwei aufeinanderfolgende Trennzeichen angezeigt werden. Wenn Sie nur ein einziges Trennzeichen bevorzugen, müssen Sie eine kleine Änderung an der Funktion vornehmen:

Function Concat2(myRange As Range, Optional myDelimiter As String)

Dim r As Range

For Each r In myRange         If Len(r.Text) > 0 Then             Concat2 = Concat2 & r & myDelimiter         End If     Next r     If Len(myDelimiter) > 0 Then         Concat2 = Left(Concat2, Len(Concat2) - Len(myDelimiter))

End If End Function

_Hinweis: _

Wenn Sie wissen möchten, wie die auf dieser Seite (oder auf einer anderen Seite der ExcelTips-Websites) beschriebenen Makros verwendet werden, habe ich eine spezielle Seite vorbereitet, die hilfreiche Informationen enthält.

ExcelTips ist Ihre Quelle für kostengünstige Microsoft Excel-Schulungen.

Dieser Tipp (11247) gilt für Microsoft Excel 2007, 2010, 2013, 2016, 2019 und Excel in Office 365. Eine Version dieses Tippes für die ältere Menüoberfläche von Excel finden Sie hier: