Разбить адрес на составляющие
GeorgeXIII
Дата: Четверг, 14.07.2016, 02:52 |
Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 18
Репутация:
0
±
Замечаний:
0% ±
Excel 2007
Уважаемые форумчане!!! Есть большая таблица ФИО, адрес. Как разделить адрес (ячейка С) на 3 колонки - улицу, дом, квартиру?
Уважаемые форумчане!!! Есть большая таблица ФИО, адрес. Как разделить адрес (ячейка С) на 3 колонки - улицу, дом, квартиру? GeorgeXIII
Сообщение отредактировал GeorgeXIII - Четверг, 14.07.2016, 02:52
Ответить
Сообщение Уважаемые форумчане!!! Есть большая таблица ФИО, адрес. Как разделить адрес (ячейка С) на 3 колонки - улицу, дом, квартиру? Автор - GeorgeXIII Дата добавления - 14.07.2016 в 02:52
sv2014
Дата: Четверг, 14.07.2016, 03:59 |
Сообщение № 2
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 226
Репутация:
61
±
Замечаний:
0% ±
Excel 2013
GeorgeXIII , вариант функций uuu1,uuu2,uuu3 в столбцах : D E и F [vba]Код
Function yyy1$(t$) yyy1 = Split(t, ",")(0) End Function
[/vba] [vba]Код
Function yyy2(t$) yyy2 = Split(Split(t, ",")(1), ".")(1) End Function
[/vba] [vba]Код
Function yyy3%(t$) yyy3 = Split(Split(t, ",")(2), ".")(1) End Function
[/vba]
GeorgeXIII , вариант функций uuu1,uuu2,uuu3 в столбцах : D E и F [vba]Код
Function yyy1$(t$) yyy1 = Split(t, ",")(0) End Function
[/vba] [vba]Код
Function yyy2(t$) yyy2 = Split(Split(t, ",")(1), ".")(1) End Function
[/vba] [vba]Код
Function yyy3%(t$) yyy3 = Split(Split(t, ",")(2), ".")(1) End Function
[/vba]sv2014
Сообщение отредактировал sv2014 - Четверг, 14.07.2016, 04:00
Ответить
Сообщение GeorgeXIII , вариант функций uuu1,uuu2,uuu3 в столбцах : D E и F [vba]Код
Function yyy1$(t$) yyy1 = Split(t, ",")(0) End Function
[/vba] [vba]Код
Function yyy2(t$) yyy2 = Split(Split(t, ",")(1), ".")(1) End Function
[/vba] [vba]Код
Function yyy3%(t$) yyy3 = Split(Split(t, ",")(2), ".")(1) End Function
[/vba]Автор - sv2014 Дата добавления - 14.07.2016 в 03:59
GeorgeXIII
Дата: Четверг, 14.07.2016, 04:20 |
Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 18
Репутация:
0
±
Замечаний:
0% ±
Excel 2007
Ответить
Сообщение Автор - GeorgeXIII Дата добавления - 14.07.2016 в 04:20
sv2014
Дата: Четверг, 14.07.2016, 04:27 |
Сообщение № 4
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 226
Репутация:
61
±
Замечаний:
0% ±
Excel 2013
GeorgeXIII , можно для квартиры вместо yyy3 еще zzz3 [vba]Код
Function zzz3%(t$) With CreateObject("VBScript.RegExp"): .Pattern = "\d+": .Global = True zzz3 = .Execute(t)(.Execute(t).Count - 1) End With End Function
[/vba]
GeorgeXIII , можно для квартиры вместо yyy3 еще zzz3 [vba]Код
Function zzz3%(t$) With CreateObject("VBScript.RegExp"): .Pattern = "\d+": .Global = True zzz3 = .Execute(t)(.Execute(t).Count - 1) End With End Function
[/vba]sv2014
Ответить
Сообщение GeorgeXIII , можно для квартиры вместо yyy3 еще zzz3 [vba]Код
Function zzz3%(t$) With CreateObject("VBScript.RegExp"): .Pattern = "\d+": .Global = True zzz3 = .Execute(t)(.Execute(t).Count - 1) End With End Function
[/vba]Автор - sv2014 Дата добавления - 14.07.2016 в 04:27
buchlotnik
Дата: Четверг, 14.07.2016, 06:10 |
Сообщение № 5
Группа: Заблокированные
Ранг: Участник клуба
Сообщений: 3442
Репутация:
929
±
Замечаний:
20% ±
2010, 2013, 2016 RUS / ENG
можно и на формулах Код
=СЖПРОБЕЛЫ(ПСТР(ПОДСТАВИТЬ(C3;",";ПОВТОР(" ";99));1;100))
Код
=СЖПРОБЕЛЫ(ПСТР(ПОДСТАВИТЬ(C3;",";ПОВТОР(" ";99));100;100))
Код
=СЖПРОБЕЛЫ(ПСТР(ПОДСТАВИТЬ(C3;",";ПОВТОР(" ";99));200;100))
или просто текст по столбцам с разделителем "," (запятая)
можно и на формулах Код
=СЖПРОБЕЛЫ(ПСТР(ПОДСТАВИТЬ(C3;",";ПОВТОР(" ";99));1;100))
Код
=СЖПРОБЕЛЫ(ПСТР(ПОДСТАВИТЬ(C3;",";ПОВТОР(" ";99));100;100))
Код
=СЖПРОБЕЛЫ(ПСТР(ПОДСТАВИТЬ(C3;",";ПОВТОР(" ";99));200;100))
или просто текст по столбцам с разделителем "," (запятая) buchlotnik
Сообщение отредактировал buchlotnik - Четверг, 14.07.2016, 06:11
Ответить
Сообщение можно и на формулах Код
=СЖПРОБЕЛЫ(ПСТР(ПОДСТАВИТЬ(C3;",";ПОВТОР(" ";99));1;100))
Код
=СЖПРОБЕЛЫ(ПСТР(ПОДСТАВИТЬ(C3;",";ПОВТОР(" ";99));100;100))
Код
=СЖПРОБЕЛЫ(ПСТР(ПОДСТАВИТЬ(C3;",";ПОВТОР(" ";99));200;100))
или просто текст по столбцам с разделителем "," (запятая) Автор - buchlotnik Дата добавления - 14.07.2016 в 06:10
sv2014
Дата: Четверг, 14.07.2016, 10:11 |
Сообщение № 6
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 226
Репутация:
61
±
Замечаний:
0% ±
Excel 2013
GeorgeXIII , добрый день,добавил функции bbb в H,ccc в J,zzz3 в N,tt в L,vvv в M и макрос use для ввода всех функций в ваш очень большой диапазон строк [vba]Код
Sub use() Dim i1&: Application.Calculation = -4135 i1 = Range("C" & ActiveSheet.Rows.Count).End(xlUp).Row Range("D3:D" & i1).Formula = "=yyy1(C3)" Range("E3:E" & i1).Formula = "=yyy2(C3)" Range("F3:F" & i1).Formula = "=yyy3(C3)" Range("H3:H" & i1).Formula = "=bbb(C3)" Range("J3:J" & i1).Formula = "=ccc(C3)" Range("L3:L" & i1).Formula = "=tt(C3)" Range("M3:M" & i1).Formula = "=vvv(C3)" Range("N3:N" & i1).Formula = "=zzz3(C3)" Application.Calculation = -4105 End Sub
[/vba] [vba]Код
Function tt(s$) tt = Mid(Split(s, ",")(UBound(Split(s, ","))), 5) End Function
[/vba] [vba]Код
Function ccc(t$) With CreateObject("VBScript.RegExp"): .Pattern = ",(.+)," ccc = Mid(.Execute(t)(0).Submatches(0), 4) End With End Function
[/vba] [vba]Код
Function bbb(t$) With CreateObject("VBScript.RegExp"): .Pattern = "[^,]+(?=,)" bbb = .Execute(t)(0) End With End Function
[/vba] [vba]Код
Function vvv%(t$) With CreateObject("VBScript.RegExp"): .Pattern = ",[^,]+$" vvv = Mid(.Execute(t)(0), 6) End With End Function
[/vba]
GeorgeXIII , добрый день,добавил функции bbb в H,ccc в J,zzz3 в N,tt в L,vvv в M и макрос use для ввода всех функций в ваш очень большой диапазон строк [vba]Код
Sub use() Dim i1&: Application.Calculation = -4135 i1 = Range("C" & ActiveSheet.Rows.Count).End(xlUp).Row Range("D3:D" & i1).Formula = "=yyy1(C3)" Range("E3:E" & i1).Formula = "=yyy2(C3)" Range("F3:F" & i1).Formula = "=yyy3(C3)" Range("H3:H" & i1).Formula = "=bbb(C3)" Range("J3:J" & i1).Formula = "=ccc(C3)" Range("L3:L" & i1).Formula = "=tt(C3)" Range("M3:M" & i1).Formula = "=vvv(C3)" Range("N3:N" & i1).Formula = "=zzz3(C3)" Application.Calculation = -4105 End Sub
[/vba] [vba]Код
Function tt(s$) tt = Mid(Split(s, ",")(UBound(Split(s, ","))), 5) End Function
[/vba] [vba]Код
Function ccc(t$) With CreateObject("VBScript.RegExp"): .Pattern = ",(.+)," ccc = Mid(.Execute(t)(0).Submatches(0), 4) End With End Function
[/vba] [vba]Код
Function bbb(t$) With CreateObject("VBScript.RegExp"): .Pattern = "[^,]+(?=,)" bbb = .Execute(t)(0) End With End Function
[/vba] [vba]Код
Function vvv%(t$) With CreateObject("VBScript.RegExp"): .Pattern = ",[^,]+$" vvv = Mid(.Execute(t)(0), 6) End With End Function
[/vba]sv2014
Ответить
Сообщение GeorgeXIII , добрый день,добавил функции bbb в H,ccc в J,zzz3 в N,tt в L,vvv в M и макрос use для ввода всех функций в ваш очень большой диапазон строк [vba]Код
Sub use() Dim i1&: Application.Calculation = -4135 i1 = Range("C" & ActiveSheet.Rows.Count).End(xlUp).Row Range("D3:D" & i1).Formula = "=yyy1(C3)" Range("E3:E" & i1).Formula = "=yyy2(C3)" Range("F3:F" & i1).Formula = "=yyy3(C3)" Range("H3:H" & i1).Formula = "=bbb(C3)" Range("J3:J" & i1).Formula = "=ccc(C3)" Range("L3:L" & i1).Formula = "=tt(C3)" Range("M3:M" & i1).Formula = "=vvv(C3)" Range("N3:N" & i1).Formula = "=zzz3(C3)" Application.Calculation = -4105 End Sub
[/vba] [vba]Код
Function tt(s$) tt = Mid(Split(s, ",")(UBound(Split(s, ","))), 5) End Function
[/vba] [vba]Код
Function ccc(t$) With CreateObject("VBScript.RegExp"): .Pattern = ",(.+)," ccc = Mid(.Execute(t)(0).Submatches(0), 4) End With End Function
[/vba] [vba]Код
Function bbb(t$) With CreateObject("VBScript.RegExp"): .Pattern = "[^,]+(?=,)" bbb = .Execute(t)(0) End With End Function
[/vba] [vba]Код
Function vvv%(t$) With CreateObject("VBScript.RegExp"): .Pattern = ",[^,]+$" vvv = Mid(.Execute(t)(0), 6) End With End Function
[/vba]Автор - sv2014 Дата добавления - 14.07.2016 в 10:11
sv2014
Дата: Четверг, 14.07.2016, 10:21 |
Сообщение № 7
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 226
Репутация:
61
±
Замечаний:
0% ±
Excel 2013
GeorgeXIII , добавил Вам кнопку use для макроса довольно быстрого ввода функций и кнопку очистка для тестирования.
GeorgeXIII , добавил Вам кнопку use для макроса довольно быстрого ввода функций и кнопку очистка для тестирования.sv2014
Ответить
Сообщение GeorgeXIII , добавил Вам кнопку use для макроса довольно быстрого ввода функций и кнопку очистка для тестирования.Автор - sv2014 Дата добавления - 14.07.2016 в 10:21
Roms
Дата: Понедельник, 26.08.2019, 11:40 |
Сообщение № 8
Группа: Пользователи
Ранг: Прохожий
Сообщений: 2
Репутация:
0
±
Замечаний:
0% ±
Excel 2016
А есть возможность разбить адреса с большим количеством параметров? ул. Солнечная Поляна, 30, Барнаул, Россия Павловский тракт, 54Д, Барнаул, Россия Телефонная ул., 121, Барнаул, Россия ул. Малахова, 169В, корп. 3, Барнаул, Россияул. 50 лет СССР, 27, Барнаул, Россия Целинная ул., 9А, Железнодорожный район, Барнаул, Россия Заринская ул., 14, корп. 1, Барнаул, Россия Заринская ул., 14, корп. 1, Барнаул, Россия Новгородская ул., 26, Барнаул, Россия Целинная ул., 3, Железнодорожный район, Барнаул, Россия
А есть возможность разбить адреса с большим количеством параметров? ул. Солнечная Поляна, 30, Барнаул, Россия Павловский тракт, 54Д, Барнаул, Россия Телефонная ул., 121, Барнаул, Россия ул. Малахова, 169В, корп. 3, Барнаул, Россияул. 50 лет СССР, 27, Барнаул, Россия Целинная ул., 9А, Железнодорожный район, Барнаул, Россия Заринская ул., 14, корп. 1, Барнаул, Россия Заринская ул., 14, корп. 1, Барнаул, Россия Новгородская ул., 26, Барнаул, Россия Целинная ул., 3, Железнодорожный район, Барнаул, Россия Roms
Ответить
Сообщение А есть возможность разбить адреса с большим количеством параметров? ул. Солнечная Поляна, 30, Барнаул, Россия Павловский тракт, 54Д, Барнаул, Россия Телефонная ул., 121, Барнаул, Россия ул. Малахова, 169В, корп. 3, Барнаул, Россияул. 50 лет СССР, 27, Барнаул, Россия Целинная ул., 9А, Железнодорожный район, Барнаул, Россия Заринская ул., 14, корп. 1, Барнаул, Россия Заринская ул., 14, корп. 1, Барнаул, Россия Новгородская ул., 26, Барнаул, Россия Целинная ул., 3, Железнодорожный район, Барнаул, Россия Автор - Roms Дата добавления - 26.08.2019 в 11:40
китин
Дата: Понедельник, 26.08.2019, 12:00 |
Сообщение № 9
Группа: Модераторы
Ранг: Экселист
Сообщений: 7015
Репутация:
1073
±
Замечаний:
0% ±
Excel 2007;2010;2016
Roms ,или просто текст по столбцам с разделителем "," (запятая)
Roms ,или просто текст по столбцам с разделителем "," (запятая)
китин
Не судите очень строго:я пытаюсь научиться ЯД 41001877306852
Ответить
Сообщение Roms ,или просто текст по столбцам с разделителем "," (запятая)
Автор - китин Дата добавления - 26.08.2019 в 12:00
Roms
Дата: Понедельник, 26.08.2019, 12:36 |
Сообщение № 10
Группа: Пользователи
Ранг: Прохожий
Сообщений: 2
Репутация:
0
±
Замечаний:
0% ±
Excel 2016
Просто текст по столбцам получается не очень удобно, тк часть адресов имеет не классический адрес и потом нужно менять местами порядок улица дом корпус и тд
Просто текст по столбцам получается не очень удобно, тк часть адресов имеет не классический адрес и потом нужно менять местами порядок улица дом корпус и тд Roms
Ответить
Сообщение Просто текст по столбцам получается не очень удобно, тк часть адресов имеет не классический адрес и потом нужно менять местами порядок улица дом корпус и тд Автор - Roms Дата добавления - 26.08.2019 в 12:36
bmv98rus
Дата: Понедельник, 26.08.2019, 12:48 |
Сообщение № 11
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4107
Репутация:
768
±
Замечаний:
0% ±
Excel 2013/2016
А есть возможность разбить адреса с большим количеством параметров?
Можно, но если действоват ьпо простому, то такая ерунда получится. А если по сложному, то надо сравнивать результат с КЛАДР или аналогичным (например через ГЕО сервис яндекса. получать координаты по приблизительному адресу а потом по ним уже формализованный точный, но на халяву это не проскочит. Ну или писать анализатор поля на предмет что это район, область ……
А есть возможность разбить адреса с большим количеством параметров?
Можно, но если действоват ьпо простому, то такая ерунда получится. А если по сложному, то надо сравнивать результат с КЛАДР или аналогичным (например через ГЕО сервис яндекса. получать координаты по приблизительному адресу а потом по ним уже формализованный точный, но на халяву это не проскочит. Ну или писать анализатор поля на предмет что это район, область ……bmv98rus
Замечательный Временно просто медведь , процентов на 20 .
Ответить
Сообщение А есть возможность разбить адреса с большим количеством параметров?
Можно, но если действоват ьпо простому, то такая ерунда получится. А если по сложному, то надо сравнивать результат с КЛАДР или аналогичным (например через ГЕО сервис яндекса. получать координаты по приблизительному адресу а потом по ним уже формализованный точный, но на халяву это не проскочит. Ну или писать анализатор поля на предмет что это район, область ……Автор - bmv98rus Дата добавления - 26.08.2019 в 12:48