“The best way to pay for a lovely moment is to enjoy it.” [Richard Bach]
Abstract
Die Excel Funktion TEXTVERKETTEN kann ab Excel Version 2019 die Inhalte von Zellbereichen und Arrays als Zeichenketten verbinden und mit vorgegebenem Trennzeichen ausgeben. Für Excel Versionen älter als Excel 2019 können Sie die hier vorgestellte benutzerdefinierte Funktion TEXTVERKETTEN verwenden.
Das Gute ist: Wenn Sie dann auf Excel 2019 oder neuer umstellen, müssen Sie nichts machen. Excel wird dann automatisch die eingebaute Funktion TEXTVERKETTEN verwenden.
Bitte beachten: Ich habe bewusst darauf verzichtet, mich um pathologische Fälle zu kümmern wie Trennzeichen ist ein Array oder Leer_ignorieren enthält ganze Zahlen wie 0 oder 1. Ich kopierte aber auch nicht die Fehler von Excel’s TEXTVERKETTEN. So behandelt Excel’s TEXTVERKETTEN Funktion Überschneidungen von nicht-zusammenhängenden Bereichen wie z. B. (A1:C3,D4:F6,G7:I9) (A1:B2,C3:D4,E5:F6,G7:H8,I9:J10) fehlerhaft. Wie bei fast jeder Analogie musste und wollte ich eine Grenze ziehen.
Anwendungsbeispiel - Fehlende Werte ausgeben
Mit der Formel =WENN(Start<Ende;TEXTVERKETTEN(",";WAHR;WENN(ISTNV(VERGLEICH(SEQUENZ(MAX(–Liste)-MIN(–Liste)+1;;MIN(–Liste));–Liste;0));SEQUENZ(MAX(–Liste)-MIN(–Liste)+1;;MIN(–Liste));""));"") können Sie ab Excel 2021 und Excel 365 fehlende Werte des Zahlenbereichs Liste ausgeben:
Mit Excel 2019 können Sie die Formel =WENN(Start<Ende;TEXTVERKETTEN(",";WAHR;WENN(ISTNV(VERGLEICH(ZEILE(INDIREKT(MIN(–Liste)&":"&MAX(–Liste)));–Liste;0));ZEILE(INDIREKT(MIN(–Liste)&":"&MAX(–Liste)));""));"") verwenden.
Bei älteren Excel Versionen als 2019 benötigen Sie die im Appendix gezeigte benutzerdefinierte Funktion TEXTVERKETTEN.
Appendix – Programmcode TEXTVERKETTEN
Bitte den Haftungsausschluss im Impressum beachten.
Option Explicit
Function TEXTVERKETTEN(Trennzeichen As String, _
Leer_ignorieren As Boolean, _
ParamArray Text() As Variant) As String
'Source (EN): http://www.sulprobil.com/textjoin_en/
'Source (DE): http://www.bplumhoff.de/textverketten_de/
'(C) (P) by Bernd Plumhoff 07-Jan-2022 PB V1.1
Dim v, i As Long, s As String, t As String
For i = LBound(Text) To UBound(Text)
If IsArray(Text(i)) Then
For Each v In Text(i)
t = IIf(IsMissing(v), "", v)
If Not (Leer_ignorieren And t = "") Then
TEXTVERKETTEN = TEXTVERKETTEN & s & t
s = Trennzeichen
End If
Next v
Else
t = IIf(IsMissing(Text(i)), "", Text(i))
If Not (Leer_ignorieren And t = "") Then
TEXTVERKETTEN = TEXTVERKETTEN & s & t
s = Trennzeichen
End If
End If
Next i
End Function
Download
Bitte den Haftungsausschluss im Impressum beachten.
Textverketten.xlsx [13 KB Excel Datei, ohne jegliche Gewährleistung]
Falls Sie eine ältere Version als Excel 2019 einsetzen (der blaue Ausgabebereich wird dann natürlich Fehlerwerte ausweisen):
Textverketten_mit_UDF.xlsm [18 KB Excel Datei, ohne jegliche Gewährleistung]