Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Изъятие символов из ячейки и запись их в другие - Мир MS Excel

Регистрация · Логин: · Пароль: · · Забыли пароль?
  • Страница 1 из 1
  • 1
Модератор форума: _Boroda_, Manyasha, SLAVICK, китин  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Изъятие символов из ячейки и запись их в другие (Макросы/Sub)
Изъятие символов из ячейки и запись их в другие
Prestan Дата: Среда, 28.02.2018, 06:33 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 3
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Доброго времени суток! Великие умы, прошу помощи у Вас!
Имеются ячейки на листе и из каждой надо изъять определенные цифры/слова и распределись в иные ячейки соответственно. В прилагаемом файле всё будет понятно и наглядно. Но я всё же хотел поделится своими рассуждениями (не знаю верны ли они для реализации).
Пример "2к.кв. Димитрова, 5/4/45 - 1650 тыс. руб. Т.: 8-974-840-16-15. (302 сч.)."
Вначале изъять двойку в отдельную ячейку и это легко сделать и с простыми формулами, а вот дальше уже проблема.
Далее надо изъять "Димитрова" в отдельную ячейку и это, наверное, выглядит как изъять слово после "к.кв." и до ",".
После изъять "5", а это как изъять символы от первого "/" до пробела по левую сторону, так как символ может быть не один и не только цифра.
Потом "4", это как символы между "/" и "/".
"45" это от "/***/" до пробела по левую сторону.
"1650" это ближайшие цифры слева от "руб".
"8-974-840-16-15" это кучка символов справа от "Т.:"
А "302 сч." это символы от ")" с конца, до ближайшего "(".
Всё как бы логично. Но вот как это всё описать? Или может вовсе моя логика не правильна.
Так ещё сложность в том, что надо применить цикл. Так как в одной ячейке могут несколько таких содержаний быть.

Я понимаю, что в макросах можно это всё сделать, а вот как не понимаю! )
Заранее благодарю за любую помощь!
К сообщению приложен файл: 122333444455555.xls(30.5 Kb)


Сообщение отредактировал Prestan - Среда, 28.02.2018, 06:33
 
Ответить
СообщениеДоброго времени суток! Великие умы, прошу помощи у Вас!
Имеются ячейки на листе и из каждой надо изъять определенные цифры/слова и распределись в иные ячейки соответственно. В прилагаемом файле всё будет понятно и наглядно. Но я всё же хотел поделится своими рассуждениями (не знаю верны ли они для реализации).
Пример "2к.кв. Димитрова, 5/4/45 - 1650 тыс. руб. Т.: 8-974-840-16-15. (302 сч.)."
Вначале изъять двойку в отдельную ячейку и это легко сделать и с простыми формулами, а вот дальше уже проблема.
Далее надо изъять "Димитрова" в отдельную ячейку и это, наверное, выглядит как изъять слово после "к.кв." и до ",".
После изъять "5", а это как изъять символы от первого "/" до пробела по левую сторону, так как символ может быть не один и не только цифра.
Потом "4", это как символы между "/" и "/".
"45" это от "/***/" до пробела по левую сторону.
"1650" это ближайшие цифры слева от "руб".
"8-974-840-16-15" это кучка символов справа от "Т.:"
А "302 сч." это символы от ")" с конца, до ближайшего "(".
Всё как бы логично. Но вот как это всё описать? Или может вовсе моя логика не правильна.
Так ещё сложность в том, что надо применить цикл. Так как в одной ячейке могут несколько таких содержаний быть.

Я понимаю, что в макросах можно это всё сделать, а вот как не понимаю! )
Заранее благодарю за любую помощь!

Автор - Prestan
Дата добавления - 28.02.2018 в 06:33
sv2014 Дата: Среда, 28.02.2018, 10:02 | Сообщение № 2
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 223
Репутация: 60 ±
Замечаний: 0% ±

Excel 2013
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]
К сообщению приложен файл: example_01_03_2.xls(49.5 Kb)


Сообщение отредактировал sv2014 - Среда, 28.02.2018, 11:28
 
Ответить
Сообщение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]

Автор - sv2014
Дата добавления - 28.02.2018 в 10:02
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Изъятие символов из ячейки и запись их в другие (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс цитирования
© 2010-2018 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!