Liebe Community,
für einen Serienbrief versuche ich seit einiger Zeit die aus einem CRM erstellte Zelle:
A1
Mustermann Straße 13 40221 Düsseldorf
aufzuteilen in
A1
Mustermann Straße 13
B1
40221
C1
Düsseldorf
mit meiner Excel-Anfänger Kompetenz bekomme ich es mit den Formeln Links Rechts usw. nicht sauber hin.
Man muss dazu wissen, dass manche Straßen Namen aus 2 oder 3 Wörtern bestehen.
Außerdem können Bindestriche vorkommen,
Ich bin über jeden Support sehr dankbar, vielen Dank!
Hallo,
versuche es mal mit der Funktion Text in Spalten unter dem Reiter Daten.
Vielen Dank, aber dann wird jeder Baustein getrennt
Mustermann
Straße
67
Das ist dann zimelich mühsehlig für den Serienbrief.
Danke trotzdem!
Hallo,
lade bitte mal eine Beispieldatei hoch.
Bei Straßennamen gibt es so viele Möglichkeiteb, dass es Sinn macht zuerst die Position der PLZ zu bestimmen.
In "Excelformeln" gibt es eine geniale Formel, mit VBA kann man nach 5 Zahlen suchen.
Dann ist alles vor der PLZ die Straße, danach die Stadt.
mfg
B1: =GLÄTTEN(TEIL(WECHSELN(WECHSELN(WECHSELN(A1
;" ";"#";LÄNGE(A1)-LÄNGE(WECHSELN(A1;" ";)))
;" ";"#";LÄNGE(A1)-LÄNGE(WECHSELN(A1;" ";))-1);"#";WIEDERHOLEN(" ";99));{1.100.199};99))
teilt sich in XL365 dynamisch in B1:D1 auf. Fehler: bei Mehrwort-Städten (Bad Wanne-Eickel, Groß Köln).
Ich würde die PLZ-Variante nehmen.
Tabelle1 | A | B | C | D |
1 | Mustermann Straße 13 40221 Düsseldorf | Mustermann Straße 13 | 40221 | Düsseldorf |
verwendete Formeln | |
Zelle | Formel | Bereich | N/A |
B1 | =LINKS(A1;FINDEN(C1;A1)-2) | | |
C1 | =TEXT(VERWEIS(9^9;1*TEIL(A1&"#";SPALTE(1:1);6));"00000") | | |
D1 | =TEIL(A1;FINDEN(C1;A1)+6;99) | | |
Hallo
dieser kleine Code sollte das Problem ebenfalls lösen. M.E. sogar ohne Fehler durch Bindestrich oder Doppelworte im Text!
Das Geheimniss: ich suche die PLZ Rüclwaerts im Text, dann spielen diese Faktoren keine Rolle. Nur die 5stellige PŞZ ist entscheidend.
Und ist die mal 4stellig kommt KEINE Auswertung!
mfg Gast 123
Code:
Sub AdressString_zerlegen()
Dim AC As Range, lz1 As Long
Dim j As Integer, n As Integer
'LastZell in Spalte A suchen
lz1 = Cells(Rows.Count, 1).End(xlUp).Row
'Schleife für alle Adressen in Spalte A
For Each AC In Range("A1:A" & lz1)
'sucht 5stellige PLZ Nummer!
For j = Len(AC) To 3 Step -1
'n löschen bei Leerzeichen im Text!
If Mid(AC, j, 1) = " " Then n = 0
If IsNumeric(Mid(AC, j, 1)) Then n = n + 1
If n = 5 Then
AC.Offset(0, 4) = Trim(Mid(AC, j + 6))
AC.Offset(0, 3) = Trim(Mid(AC, j, 5))
AC.Offset(0, 2) = Trim(Left(AC, j - 1))
n = 0: Exit For
End If
Next j
Next AC
End Sub
Vielen Dank euch allen!
Die Variante von Cadmus hat geklappt, super!
Danke!