PDA

Vollständige Version anzeigen : Zahlen aus Zelle extrahieren und in neue kopieren


Hotshot666
10.07.2014, 06:15
Hallo zusammen,

Ich habe ein kleines Problem... Ich habe eine Excell-Tabelle mit Adressen bekommen. In dieser sollte ich die Hausnummern von den Strassennamen trennen und in separate Zellen einfügen.

Dies sieht dann etwa so aus:

Hauptstrasse 5
Dorfstrasse 7a
Kirchenweg 39-41
Stadtweg 44/46
Gartenweg 157
Mittlere Strasse 77 - 81
Strasse 33
Weg 100

Diese Werte sollten dann nach der Formatierung etwa so aussehen:

Hauptstrasse | 5
Dorfstrasse | 7a
Kirchenweg | 39-41
Stadtweg | 44/46
Gartenweg | 157
Mittlere Strasse | 77 - 81
Strasse | 33
Weg | 100

Könnte mir bitte jemand mit einer Formel helfen?
Ich habe es schon mit der folgenden Formel versucht. Da fehlen dann jedoch immer die Buchstaben oder Sonderzeichen...

=TEIL(LINKS(A2;MAX(WENN(ISTZAHL(TEIL(A2;SPALTE(1:1);1)*1);SPALTE(1:1))));VERGLEI CH(WAHR;ISTZAHL(TEIL(A2;SPALTE(1:1);1)*1);0);LÄNGE(A2))

Vielen herzlichen Dank für eure Hilfe bereits im Voraus!

BrunMi
10.07.2014, 07:07
Hallo Hotshot,

Die "Mittlere Straße" macht mir ein bisschen Probleme.
Wenn die nicht wäre könnte man einfach am ersten Leerzeichen den String teilen..
So würde ich zu einer VBA Lösung tendieren, die nach der ersten Zahl nach einem Leerzeichen sucht und dort den String teilt.

LG
BrunMi

BrunMi
10.07.2014, 07:43
Hallo nochmal,

Hab dir mal schnell ein kleines Makro zusammengebastelt.

Hier der Code:

Sub teilen()
Dim letzteZeile As Integer
Dim i As Integer
Dim Teile() As String
Dim Hausnummer As String
Dim j As Integer
Dim PositionTeiler As Integer
Dim Strasse As String
Dim Nummer As String

letzteZeile = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row

For i = 1 To letzteZeile
Strasse = ""
Nummer = ""

Hausnummer = Cells(i, 1)'Hier die 1 bitte durch die Spalte ersetzen bei der bei dir die Adressen stehen
Teile = Split(Hausnummer, " ")
For j = 0 To UBound(Teile)
If IsNumeric(Left(Teile(j), 1)) Then
PositionTeiler = j
j = UBound(Teile)
End If
Next j

For j = 0 To PositionTeiler - 1
Strasse = Strasse & "" & Teile(j) & " "
Next j

For j = PositionTeiler To UBound(Teile)
Nummer = Nummer & "" & Teile(j) & " "
Next j

Cells(i, 2) = Left(Strasse, Len(Strasse) - 1)
Cells(i, 3) = Left(Nummer, Len(Nummer) - 1)
Next i
End Sub


Hab einfach mal angenommen die Adressen stehen bei dir in Spalte 1.
Im Anhang findest du noch eine Beispieldatei.
Führe dort einfach mal das Makro aus und sieh was passiert ;)

Ich hoffe ich konnte dir helfen.

LG
BrunMi

Hotshot666
10.07.2014, 07:47
Vielen Dank! Das war genau, was ich gesucht habe!!!

BrunMi
10.07.2014, 10:16
Gern geschehen.
Bitte vergiss nicht den Beitrag als erledigt zu markieren, solltest du das noch nicht getan haben. ;)

LG
BrunMi