Страницы: 1
RSS
Получить из текста только название улицы
 
Приветствую всех.

Проблема следующая. Есть список адресов (каждый адрес в отдельной строке) в следующем виде:

ул. Суворова, д. 20
пгт. Северный, ул. Зеленая, д. 15
ул. Ленина, д. 1
ул. Новая, д. 17/2

Требуется получить формулой:
Суворова
Зеленая
Ленина
Новая
Наверное, следует дополнить. Помимо "ул." могут быть "пер.", "пл.", "б-р" и т.д.

Заранее спасибо.
 
Код
=СЖПРОБЕЛЫ(ЛЕВБ(ПСТР(A1;ПОИСК("ул.";A1)+3;99);ПОИСК(",";ПСТР(A1;ПОИСК("ул.";A1)+3;99))-1))


Цитата
Ильдар написал: Наверное, следует дополнить
наверное нужно делать нормальный пример изначально
Соблюдение правил форума не освобождает от модераторского произвола
 
Доброе время суток
Цитата
buchlotnik написал:
нужно делать нормальный пример изначально
Михаил, предположу, что ТС считает, что гуру должны сами брать варианты обозначений Сокращенные наименования типов адресных объектов, а то ему некогда :)
 
UDF
Код
Function iStreet(cell$)
 With CreateObject("VBScript.RegExp")
     .IgnoreCase = True
     .Pattern = "(ул.|пер.|пл.|б-р) ([А-ЯЁ]+)"
     iStreet = .Execute(cell)(0).SubMatches(1)
 End With
End Function
 
=TRIM(RIGHT(SUBSTITUTE(TRIM(SUBSTITUTE(LEFT(A1;FIND(" д.";A1)-1);",";));" ";REPT(" ";99));99))
По вопросам из тем форума, личку не читаю.
 
а ещё неплохо уточнить, будут ли названия а ля ул. 1905 года  :)
и тогда UDF
Код
Function iStreet(cell$) 
With CreateObject("VBScript.RegExp")     
.IgnoreCase = True     
.Pattern = "(ул\.|пер\.|пл\.|б-р)([^,]+)"     
iStreet = .Execute(cell)(0).SubMatches(1) 
End With
End Function
Изменено: buchlotnik - 29.07.2020 16:08:48
Соблюдение правил форума не освобождает от модераторского произвола
 
Цитата
buchlotnik написал:
а ля ул. 1905 года
вот так и тянет первую букву заменить. тогда мое надо менять.
По вопросам из тем форума, личку не читаю.
 
Цитата
buchlotnik написал:
наверное нужно делать нормальный пример изначально
Пардон, моя вина.

Привожу полный список вариантов (выдержка из Приказа Минфина России от 05.11.2015 N 171н):
Аллея - "ал."
Бульвар - "б-р"
Взвоз - "взв."
Въезд - "взд."
Дорога - "дор."
Заезд - "ззд."
Километр - "км"
Кольцо - "к-цо"
Коса - "коса"
Линия - "лн."
Магистраль - "мгстр."
Набережная - "наб."
Переезд - "пер-д"
Переулок - "пер."
Площадка - "пл-ка"
Площадь - "пл."
Проезд - "пр-д"
Просек - "пр-к"
Просека - "пр-ка"
Проселок - "пр-лок"
Проспект - "пр-кт"
Проулок - "проул."
Разъезд - "рзд."
Ряд(ы) - "ряд"
Сквер - "с-р"
Спуск - "с-к"
Съезд - "сзд."
Тракт - "тракт"
Тупик - "туп."
Улица - "ул."
Шоссе - "ш."
 
Цитата
buchlotnik написал:
ул. 1905 года
Может быть и такая 1-я улица 8 Марта :)
 
БМВ, благодарю за предложенный вариант, но результатом этой формулы (у меня во всяком случае) являются номера домов
 
Цитата
Ильдар написал:
но результатом этой формулы
возожно вашей и на ваших данных, но не на тех что предложено выше
По вопросам из тем форума, личку не читаю.
 
БМВ, извиняюсь. Все правильно. Вместо "Left" ошибочно написал "ПРАВСИМВ". Большое спасибо за решение.
 
Цитата
Ильдар написал:
Наверное, следует дополнить...
Наверное, надо просто файл-пример прикладывать...
Всё сложное - не нужно. Всё нужное - просто /М. Т. Калашников/
 
Offtop
Цитата
Михаил Лебедев написал:
просто файл-пример прикладывать...
Тогда не получится сутки другие ждать ответа, могут же и сразу выдать чего-нибудь на гора :D
Изменено: Андрей VG - 29.07.2020 19:43:57
Страницы: 1
Наверх