Если ваши примеры действительно репрезентативны, то существует шаблон, который можно извлечь с помощью регулярных выражений. Это может быть реализовано в Excel с использованием VBA.
Шаблон:
- Начало строки
- Серия цифр с последующим пробелом
- Подстрока, которая начинается с одной или нескольких цифр и не содержит других цифр
- вторая подстрока, которая начинается с одной или нескольких цифр и не содержит других цифр
- несколько разделенных пробелами групп с запятыми, с необязательной запятой (возврат последней)
Все ваши примеры показывают эту модель. Вот пользовательская функция, которая будет обрабатывать это:
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
Конечно, если ваш пример не является действительно представительным, то это решение не будет работать.