Excel 2007 Stringwurst zerlegen
Guten Tag,
Ich habe folgendes Problem:
Mir liegt eine Tabelle mit ca. 2000 Zeilen vor, die eine Spalte enthält, in deren Zellen ein String
in einer Wurst abgelegt ist:
Bsp.
Greinweg11EnnsdorfTeilewestlichesNiederösterreich4050
Ich suche nun nach einer Möglichkeit, diese "Wurst" zu zerteilen, und zwar in der Form, dass der String
bei Wechsel Kleinbuchstabe auf Zahl, Zahl auf Großbuchstabe, Kleinbuchstabe auf Großbuchstabe und
Kleinbuchstabe auf Zahl in entsprechende Spalten aufgeteilt wird.
Also: Greinweg 11 | Ennsdorf | Teile westliches Niederösterreich | 4050 |
Google hilft leider nicht weiter, daher hoffe ich auf Hilfe von Euch.
Hat jemand eine Idee ?
Lg
Michael
Ich habe folgendes Problem:
Mir liegt eine Tabelle mit ca. 2000 Zeilen vor, die eine Spalte enthält, in deren Zellen ein String
in einer Wurst abgelegt ist:
Bsp.
Greinweg11EnnsdorfTeilewestlichesNiederösterreich4050
Ich suche nun nach einer Möglichkeit, diese "Wurst" zu zerteilen, und zwar in der Form, dass der String
bei Wechsel Kleinbuchstabe auf Zahl, Zahl auf Großbuchstabe, Kleinbuchstabe auf Großbuchstabe und
Kleinbuchstabe auf Zahl in entsprechende Spalten aufgeteilt wird.
Also: Greinweg 11 | Ennsdorf | Teile westliches Niederösterreich | 4050 |
Google hilft leider nicht weiter, daher hoffe ich auf Hilfe von Euch.
Hat jemand eine Idee ?
Lg
Michael
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 287486
Url: https://administrator.de/contentid/287486
Ausgedruckt am: 25.11.2024 um 11:11 Uhr
6 Kommentare
Neuester Kommentar
also mit
kannst du nach dem ersten Großbuchstaben in dem Feld suchen.
Function ErsterGrossbuchstabe(Zeichenkette As String) As Integer
Dim zeichen As String
Dim x As Integer
Dim laenge As Integer
laenge = Len(Zeichenkette)
For x = 1 To laenge
zeichen = Mid(Zeichenkette, x, 1)
Select Case zeichen
Case "A" To "Z"
ErsterGrossbuchstabe = x
Exit For
Case "Ä", "Ö", "Ü"
ErsterGrossbuchstabe = x
Exit For
End Select
Next
End Function
kannst du nach dem ersten Großbuchstaben in dem Feld suchen.
Sub SplitLines()
Set regex = CreateObject("vbscript.regexp")
regex.Global = True: regex.IgnoreCase = False: regex.MultiLine = True
regex.Pattern = "(?=([a-z][A-Z])|([a-z]\d+)|(\d[A-Z]))"
With ActiveSheet
For Each cell In .Range("A1:A" & .Cells(Rows.Count, "A").End(xlUp).Row)
Set matches = regex.Execute(cell.Value)
Dim SplitArray()
ReDim SplitArray(matches.Count)
P = 0: I = 0
For Each myMatch In matches
SplitArray(I) = Mid(cell.Value, P + 1, myMatch.FirstIndex + 1 - P)
P = myMatch.FirstIndex + myMatch.Length + 1
I = I + 1
Next
SplitArray(I) = Mid(cell.Value, P + 1)
cell.Resize(1, UBound(SplitArray) + 1).Value = SplitArray
Next
End With
End Sub
Macht aus
A |
---|
Greinweg11EnnsdorfTeilewestlichesNiederösterreich4050 |
schon mal das hier:
A | B | C | D | E | F |
---|---|---|---|---|---|
Greinweg | 11 | Ensdorf | Teilewestliches | Niederösterreich | 4050 |
Die Spalten kannst du dir dann nach Bedarf mit Formeln zusammenfassen.
Das Teilewestliches lässt sich natürlich jetzt nicht trennen (zwei Kleinbuchstaben).
Aber woher hast du solche komischen Daten, klingt mir eher danach als Hätte da ein Noob versucht das aus einem Browser rauszukopieren.
Gruß grexit
Und ja, diese Datei stammt von einem Azubi, der nicht wirklich wusste was er tat.
[Sarkasmus Modus an] Dann hätt ich für den "Stift" eine schöne Aufgabe => zu Fuß zerlegen lassen beim nächsten mal macht er's dann bestimmt besser, wenn er dann am Abend mit rauchenden Fingern und wunden Augen nach Hause stolpert [Sarkasmus Modus aus]