Добрый день, дорогие знатоки! Помогите, пожалуйста, разделить текст во втором столбце, чтобы в отдельном столбце был индекс, в отдельном город, в отдельном весь остальной адрес. Нужны формулы или другие варианты. Да, кое-где нет знаков, или они лишние, и вообще адрес забит не по определенному канону. Это дело последующей правки, а сейчас нужно определить общую схему действий. Благодарю!
Добрый день, дорогие знатоки! Помогите, пожалуйста, разделить текст во втором столбце, чтобы в отдельном столбце был индекс, в отдельном город, в отдельном весь остальной адрес. Нужны формулы или другие варианты. Да, кое-где нет знаков, или они лишние, и вообще адрес забит не по определенному канону. Это дело последующей правки, а сейчас нужно определить общую схему действий. Благодарю!snezhana
snezhana, протестируйте функции в файл-примере: yy1 в столбце 7,yy2 в столбце 8,yy3 в столбце 11 кнопки справа test,clean очистить
[vba]
Код
Function yy1$(t1$) With CreateObject("VBScript.RegExp") .Pattern = "\d{6}" If .test(t1) Then: yy1 = .Execute(t1)(0).Value End With End Function
[/vba]
[vba]
Код
Function yy2$(t1$) With CreateObject("VBScript.RegExp") .IgnoreCase = True .Pattern = "г\.\s*[-a-яё]{5,15}" If .test(t1) Then: yy2 = .Execute(t1)(0).Value End With End Function
[/vba]
[vba]
Код
Function yy3$(t1$) With CreateObject("VBScript.RegExp") .IgnoreCase = True .Pattern = "(ул\.|проспект\s).+" If .test(t1) Then yy3 = .Execute(t1)(0).Value Else .Pattern = "[-a-яё]{10}\sш\.\,\s.+" If .test(t1) Then: yy3 = .Execute(t1)(0).Value End If End With End Function
[/vba]
snezhana, протестируйте функции в файл-примере: yy1 в столбце 7,yy2 в столбце 8,yy3 в столбце 11 кнопки справа test,clean очистить
[vba]
Код
Function yy1$(t1$) With CreateObject("VBScript.RegExp") .Pattern = "\d{6}" If .test(t1) Then: yy1 = .Execute(t1)(0).Value End With End Function
[/vba]
[vba]
Код
Function yy2$(t1$) With CreateObject("VBScript.RegExp") .IgnoreCase = True .Pattern = "г\.\s*[-a-яё]{5,15}" If .test(t1) Then: yy2 = .Execute(t1)(0).Value End With End Function
[/vba]
[vba]
Код
Function yy3$(t1$) With CreateObject("VBScript.RegExp") .IgnoreCase = True .Pattern = "(ул\.|проспект\s).+" If .test(t1) Then yy3 = .Execute(t1)(0).Value Else .Pattern = "[-a-яё]{10}\sш\.\,\s.+" If .test(t1) Then: yy3 = .Execute(t1)(0).Value End If End With End Function