Доброго времени суток! Великие умы, прошу помощи у Вас! Имеются ячейки на листе и из каждой надо изъять определенные цифры/слова и распределись в иные ячейки соответственно. В прилагаемом файле всё будет понятно и наглядно. Но я всё же хотел поделится своими рассуждениями (не знаю верны ли они для реализации). Пример "2к.кв. Димитрова, 5/4/45 - 1650 тыс. руб. Т.: 8-974-840-16-15. (302 сч.)." Вначале изъять двойку в отдельную ячейку и это легко сделать и с простыми формулами, а вот дальше уже проблема. Далее надо изъять "Димитрова" в отдельную ячейку и это, наверное, выглядит как изъять слово после "к.кв." и до ",". После изъять "5", а это как изъять символы от первого "/" до пробела по левую сторону, так как символ может быть не один и не только цифра. Потом "4", это как символы между "/" и "/". "45" это от "/***/" до пробела по левую сторону. "1650" это ближайшие цифры слева от "руб". "8-974-840-16-15" это кучка символов справа от "Т.:" А "302 сч." это символы от ")" с конца, до ближайшего "(". Всё как бы логично. Но вот как это всё описать? Или может вовсе моя логика не правильна. Так ещё сложность в том, что надо применить цикл. Так как в одной ячейке могут несколько таких содержаний быть.
Я понимаю, что в макросах можно это всё сделать, а вот как не понимаю! ) Заранее благодарю за любую помощь!
Доброго времени суток! Великие умы, прошу помощи у Вас! Имеются ячейки на листе и из каждой надо изъять определенные цифры/слова и распределись в иные ячейки соответственно. В прилагаемом файле всё будет понятно и наглядно. Но я всё же хотел поделится своими рассуждениями (не знаю верны ли они для реализации). Пример "2к.кв. Димитрова, 5/4/45 - 1650 тыс. руб. Т.: 8-974-840-16-15. (302 сч.)." Вначале изъять двойку в отдельную ячейку и это легко сделать и с простыми формулами, а вот дальше уже проблема. Далее надо изъять "Димитрова" в отдельную ячейку и это, наверное, выглядит как изъять слово после "к.кв." и до ",". После изъять "5", а это как изъять символы от первого "/" до пробела по левую сторону, так как символ может быть не один и не только цифра. Потом "4", это как символы между "/" и "/". "45" это от "/***/" до пробела по левую сторону. "1650" это ближайшие цифры слева от "руб". "8-974-840-16-15" это кучка символов справа от "Т.:" А "302 сч." это символы от ")" с конца, до ближайшего "(". Всё как бы логично. Но вот как это всё описать? Или может вовсе моя логика не правильна. Так ещё сложность в том, что надо применить цикл. Так как в одной ячейке могут несколько таких содержаний быть.
Я понимаю, что в макросах можно это всё сделать, а вот как не понимаю! ) Заранее благодарю за любую помощь!Prestan
Prestan, для трех первых столбцов функции(первая цифра , улица и следующий фрагмент),далее аналогично в столбцах E G I L N пять функций для задания с конца
[vba]
Код
Function zzz$(t$) With CreateObject("VBScript.RegExp"): .Pattern = "\d+" zzz = .Execute(t)(0) End With End Function
[/vba]
[vba]
Код
Function aaa$(t$) With CreateObject("VBScript.RegExp"): .Pattern = "(?:к\.кв\.) (.+?)(?=,)" aaa = .Execute(t)(0).Submatches(0) End With End Function
[/vba]
[vba]
Код
Function bbb(t$) With CreateObject("VBScript.RegExp"): .Pattern = "(?:, )(.+?)(?=/)" bbb = .Execute(t)(0).Submatches(0) End With End Function
[/vba]
Prestan, для трех первых столбцов функции(первая цифра , улица и следующий фрагмент),далее аналогично в столбцах E G I L N пять функций для задания с конца
[vba]
Код
Function zzz$(t$) With CreateObject("VBScript.RegExp"): .Pattern = "\d+" zzz = .Execute(t)(0) End With End Function
[/vba]
[vba]
Код
Function aaa$(t$) With CreateObject("VBScript.RegExp"): .Pattern = "(?:к\.кв\.) (.+?)(?=,)" aaa = .Execute(t)(0).Submatches(0) End With End Function
[/vba]
[vba]
Код
Function bbb(t$) With CreateObject("VBScript.RegExp"): .Pattern = "(?:, )(.+?)(?=/)" bbb = .Execute(t)(0).Submatches(0) End With End Function