Wenn Sie eine integrierte Funktion wünschen, können Sie diese Matrixformel verwenden:
=TEXTJOIN(" ",TRUE,IFERROR(--LEFT(TRIM(MID(SUBSTITUTE(A1,"-",REPT(" ",999)),ROW(INDIRECT("1:" & LEN(A1)-LEN(SUBSTITUTE(A1,"-",""))))*999,999)),FIND(" ",TRIM(MID(SUBSTITUTE(A1,"-",REPT(" ",999)),ROW(INDIRECT("1:" & LEN(A1)-LEN(SUBSTITUTE(A1,"-",""))))*999,999))&" ")-1),""))
Als Array-Formel muss sie beim Verlassen des Bearbeitungsmodus mit STRG-UMSCHALT-EINGABE anstelle von EINGABE bestätigt werden. Wenn es richtig gemacht wird, wird Excel {}
die Formel verwenden.
Hinweis:
Dadurch wird die erste Zahlengruppierung nach jeder zurückgegeben -
TEXTJOIN () ist mit einem Abonnement für Office 365 Excel verfügbar. Wenn dies nicht der Fall ist, fügen Sie diesen Code einem an die Arbeitsmappe angefügten Modul hinzu und verwenden Sie die oben beschriebene Formel:
Function TEXTJOIN(delim As String, skipblank As Boolean, arr) Dim d As Long Dim c As Long Dim arr2() Dim t As Long, y As Long t = -1 y = -1 If TypeName(arr) = "Range" Then arr2 = arr.Value Else arr2 = arr End If On Error Resume Next t = UBound(arr2, 2) y = UBound(arr2, 1) On Error GoTo 0 If t >= 0 And y >= 0 Then For c = LBound(arr2, 1) To UBound(arr2, 1) For d = LBound(arr2, 1) To UBound(arr2, 2) If arr2(c, d) <> "" Or Not skipblank Then TEXTJOIN = TEXTJOIN & arr2(c, d) & delim End If Next d Next c Else For c = LBound(arr2) To UBound(arr2) If arr2(c) <> "" Or Not skipblank Then TEXTJOIN = TEXTJOIN & arr2(c) & delim End If Next c End If TEXTJOIN = Left(TEXTJOIN, Len(TEXTJOIN) - Len(delim)) End Function