Wenn Ihre Beispiele wirklich repräsentativ sind, gibt es ein Muster, das mit regulären Ausdrücken extrahiert werden kann. Dies kann in Excel mit VBA implementiert werden.
Muster:
- Anfang der Zeichenfolge
- Ziffernfolge gefolgt von einem Leerzeichen
- Teilzeichenfolge, die mit einer oder mehreren Ziffern beginnt und keine anderen Ziffern enthält
- einen zweiten Teilstring, der mit einer oder mehreren Ziffern beginnt und keine weiteren Ziffern enthält
- mehrere durch Leerzeichen getrennte Ziffern-Komma-Gruppen mit optionalem Komma (das letzte zurückgeben)
Alle Ihre Beispiele zeigen dieses Muster. Hier ist eine benutzerdefinierte Funktion, die das erledigt:
Option Explicit Function extrAddressPart(sAddr As String, lPart As Long) Dim RE As Object, MC As Object Const sPat As String = "^(\d+)\s+(\d+\D+)\s+(\d+\D+)\s+.*\s+([\d,]+)$" Set RE = CreateObject("vbscript.regexp") With RE .Pattern = sPat .MultiLine = True .Global = False If .Test(sAddr) = True Then Set MC = .Execute(sAddr) extrAddressPart = MC(0).submatches(lPart - 1) End If End With End Function
Wenn Ihr Beispiel nicht wirklich repräsentativ ist, funktioniert diese Lösung natürlich nicht.