Verketten von Zellbereichen (Microsoft Excel)
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 Application.Volatile For Each r In myRange Concat = Concat & r & myDelimiter Next r If Len(myDelimiter) > 0 Then Concat = Left(Concat, Len(Concat) - 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 Application.Volatile For Each r In myRange If Len(r.Text) > 0 Then Concat = Concat & r & myDelimiter End If Next r If Len(myDelimiter) > 0 Then Concat = Left(Concat, Len(Concat) - 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 (3062) gilt für Microsoft Excel 97, 2000, 2002 und 2003. Eine Version dieses Tipps für die Multifunktionsleistenschnittstelle von Excel (Excel 2007 und höher) finden Sie hier: