| Teil | Beschreibung |
| begrüßungsformel | Erforderlich. Ein Zeichenfolgenausdruck, der den landesüblichen Geflogenheiten entspricht. Eine Auswahl möglicher Werte kann der folgenden Zeile entnommen werden. "Hallo", "Hi", "Guten Tag" Auch die Verwendung von umgangssprachlichen Angaben, wie z Bsp "Moin" oder "Tach" ist möglich. |
| name | Optional. Ein Zeichenfolgenausdruck, der mit Hilfe des Argumentes begrüßungsformel die gewünschte Zielgruppe einschränkt. |
| text | Erforderlich. Ein Zeichenfolgenausdruck, der Auskunft über das eigentliche Anliegen des Fragenden gibt. Der Inhalt ist frei wählbar, sollte jedoch freundlich und qualifiziert gestaltet werden. |
| schlussformel | Erforderlich. Ein Zeichenfolgenausdruck, der den landesüblichen Geflogenheiten entspricht. Eine Auswahl möglicher Werte kann der folgenden Zeile entnommen werden. "Ciao", "Gruß", "viele Grüße", "Tschüss" Auch hier ist die Verwendung von umgangssprachlichen Angaben, wie z Bsp "und wech..." möglich. Zusätzlich möglich ist es, dass schlussformel den eigenen Namen und/oder den Wert aus name enthält. |
Sub splitten()
Dim sTmp As String, i As Long
Application.ScreenUpdating = False
For i = 2 To Cells(Rows.Count, 1).End(xlUp).Row
sTmp = Left(Cells(i, 1), 50)
If InStr(sTmp, " ") > 0 Then
sTmp = Left(sTmp, InStrRev(sTmp, " "))
End If
Cells(i, 2) = Trim(sTmp)
Cells(i, 3) = Trim(Mid(Cells(i, 1), Len(sTmp) + 1, 255))
Next
Application.ScreenUpdating = True
End Sub
| A | B | C | |
| 1 | |||
| 2 | |||
| 3 | |||
| 4 | |||
| 5 | |||
| 6 |
| Zelle | Formel |
|---|---|
| B1 | {=WENN(UND(LÄNGE(A1)>0;LÄNGE(A1)<50);A1;WENN(ISTFEHLER(FINDEN(" ";LINKS(A1;50)));LINKS(A1;50);LINKS(A1;MAX(WENN(TEIL(A1;ZEILE($1:$50);1)=" ";ZEILE($1:$50)))))) |
| B2 | {=WENN(UND(LÄNGE(A2)>0;LÄNGE(A2)<50);A2;WENN(ISTFEHLER(FINDEN(" ";LINKS(A2;50)));LINKS(A2;50);LINKS(A2;MAX(WENN(TEIL(A2;ZEILE($1:$50);1)=" ";ZEILE($1:$50)))))) |
| B3 | {=WENN(UND(LÄNGE(A3)>0;LÄNGE(A3)<50);A3;WENN(ISTFEHLER(FINDEN(" ";LINKS(A3;50)));LINKS(A3;50);LINKS(A3;MAX(WENN(TEIL(A3;ZEILE($1:$50);1)=" ";ZEILE($1:$50)))))) |
| B4 | {=WENN(UND(LÄNGE(A4)>0;LÄNGE(A4)<50);A4;WENN(ISTFEHLER(FINDEN(" ";LINKS(A4;50)));LINKS(A4;50);LINKS(A4;MAX(WENN(TEIL(A4;ZEILE($1:$50);1)=" ";ZEILE($1:$50)))))) |
| B5 | {=WENN(UND(LÄNGE(A5)>0;LÄNGE(A5)<50);A5;WENN(ISTFEHLER(FINDEN(" ";LINKS(A5;50)));LINKS(A5;50);LINKS(A5;MAX(WENN(TEIL(A5;ZEILE($1:$50);1)=" ";ZEILE($1:$50)))))) |
| B6 | {=WENN(UND(LÄNGE(A6)>0;LÄNGE(A6)<50);A6;WENN(ISTFEHLER(FINDEN(" ";LINKS(A6;50)));LINKS(A6;50);LINKS(A6;MAX(WENN(TEIL(A6;ZEILE($1:$50);1)=" ";ZEILE($1:$50)))))) |
| C1 | {=WENN(LÄNGE(A1)<51;"";WENN(ISTFEHLER(FINDEN(" ";LINKS(A1;50)));TEIL(A1;51;100);TEIL(A1;MAX(WENN(TEIL(A1;ZEILE($1:$50);1)=" ";ZEILE($1:$50)))+1;100))) |
| C2 | {=WENN(LÄNGE(A2)<51;"";WENN(ISTFEHLER(FINDEN(" ";LINKS(A2;50)));TEIL(A2;51;100);TEIL(A2;MAX(WENN(TEIL(A2;ZEILE($1:$50);1)=" ";ZEILE($1:$50)))+1;100))) |
| C3 | {=WENN(LÄNGE(A3)<51;"";WENN(ISTFEHLER(FINDEN(" ";LINKS(A3;50)));TEIL(A3;51;100);TEIL(A3;MAX(WENN(TEIL(A3;ZEILE($1:$50);1)=" ";ZEILE($1:$50)))+1;100))) |
| C4 | {=WENN(LÄNGE(A4)<51;"";WENN(ISTFEHLER(FINDEN(" ";LINKS(A4;50)));TEIL(A4;51;100);TEIL(A4;MAX(WENN(TEIL(A4;ZEILE($1:$50);1)=" ";ZEILE($1:$50)))+1;100))) |
| C5 | {=WENN(LÄNGE(A5)<51;"";WENN(ISTFEHLER(FINDEN(" ";LINKS(A5;50)));TEIL(A5;51;100);TEIL(A5;MAX(WENN(TEIL(A5;ZEILE($1:$50);1)=" ";ZEILE($1:$50)))+1;100))) |
| C6 | {=WENN(LÄNGE(A6)<51;"";WENN(ISTFEHLER(FINDEN(" ";LINKS(A6;50)));TEIL(A6;51;100);TEIL(A6;MAX(WENN(TEIL(A6;ZEILE($1:$50);1)=" ";ZEILE($1:$50)))+1;100))) |
Um Zellen in Excel nach einer bestimmten Anzahl von Zeichen an einem Leerzeichen zu trennen, kannst du eine einfache VBA-Makro-Lösung verwenden. Hier ist eine Schritt-für-Schritt-Anleitung:
Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.
Klicke auf Einfügen und wähle Modul, um ein neues Modul zu erstellen.
Füge den folgenden Code in das Modul ein:
Sub splitten()
Dim sTmp As String, i As Long
Application.ScreenUpdating = False
For i = 2 To Cells(Rows.Count, 1).End(xlUp).Row
sTmp = Left(Cells(i, 1), 50)
If InStr(sTmp, " ") > 0 Then
sTmp = Left(sTmp, InStrRev(sTmp, " "))
End If
Cells(i, 2) = Trim(sTmp)
Cells(i, 3) = Trim(Mid(Cells(i, 1), Len(sTmp) + 1, 255))
Next
Application.ScreenUpdating = True
End Sub
Schließe den VBA-Editor und gehe zurück zu Excel.
Führe das Makro aus, indem du ALT + F8 drückst, das Makro auswählst und auf Ausführen klickst.
Dieses Makro trennt den Text in der ersten Spalte bei 50 Zeichen und sucht das letzte Leerzeichen, um sicherzustellen, dass die Trennung sinnvoll geschieht.
Fehler: "Typenübereinstimmung"
Fehler: Zellen bleiben leer
Wenn du keine VBA-Makros verwenden möchtest, gibt es auch Formeln, die du verwenden kannst. Hier ist eine Methode, um Text nach Leerzeichen zu trennen:
Verwende die folgende Formel für die erste Zelle (B1):
=WENN(UND(LÄNGE(A1) > 0; LÄNGE(A1) < 50); A1; WENN(ISTFEHLER(FINDEN(" ";LINKS(A1;50)));LINKS(A1;50);LINKS(A1;MAX(WENN(TEIL(A1;ZEILE($1:$50);1)=" ";ZEILE($1:$50))))))
Für die zweite Zelle (C1):
=WENN(LÄNGE(A1) < 51; ""; WENN(ISTFEHLER(FINDEN(" ";LINKS(A1;50)));TEIL(A1;51;100);TEIL(A1;MAX(WENN(TEIL(A1;ZEILE($1:$50);1)=" ";ZEILE($1:$50))) + 1;100)))
Stelle sicher, dass du die Formeln mit Strg + Shift + ENTER bestätigst, um sie als Matrixformeln einzufügen.
Angenommen, du hast in Zelle A1 den Text:
"Staubsauger Elektrofluxx ZR50 1200 Watt für Allergiker, Gehäusefarbe schwarz"
Nach Ausführung des Makros oder der Formeln erhältst du in den Zellen B1 und C1:
"Staubsauger Elektrofluxx ZR50 1200 Watt für""Allergiker, Gehäusefarbe schwarz"1. Wie kann ich sicherstellen, dass das Makro nur auf bestimmte Zellen angewendet wird? Du kannst die Schleife im Makro anpassen, um nur den gewünschten Zellbereich zu durchlaufen.
2. Was passiert, wenn kein Leerzeichen in den ersten 50 Zeichen vorhanden ist? In diesem Fall wird der Text nach genau 50 Zeichen getrennt.
3. Ist es möglich, das Skript so zu ändern, dass es mehr als zwei Zellen erstellt? Ja, du kannst das Makro erweitern, um mehrere Spalten zu füllen, indem du weitere Zellen in der Schleife hinzufügst.