![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Регистрация: 05.08.2009
Сообщений: 4
|
![]()
В столбце "А" длинный список - назначения платежа из платежных поручений типа "Оплата за товар по договору № 37 от 14.08.2009".
Нужно в столбец "B" поместить номер договора, в столбец "С" - дату. Сложность в том, что назначение платежа может быть и таким: "Оплата за товар по счету 1736 от 18.08.09 по договору № 37 от 14.08.2009". В этом случае, если однозначно решить задачу нельзя, достаточно оставить пустыми ячейки в столбцах "B" и "С" для ручного заполнения. По статистике около 90% платежек можно разобрать автоматически - то есть время ручной обработки сократится в 10 раз. Можно ли это сделать? |
![]() |
![]() |
![]() |
#2 |
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,858
|
![]()
Могу предложить вариант с пользовательскими функциями:
Код:
Код:
|
![]() |
![]() |
![]() |
#3 |
Регистрация: 05.08.2009
Сообщений: 4
|
![]()
Спасибо. Но почему-то у меня Ваш пример не работает: при попытке скопировать формулу вниз в столбцах "В" и "С" появляется ошибка #ИМЯ?
Я что-то не так делаю? У меня Excel-2003 русский. |
![]() |
![]() |
![]() |
#4 |
Форумчанин
Регистрация: 05.08.2009
Сообщений: 465
|
![]()
Для ячейки В1:
Код:
Код:
"Все следует делать настолько простым, насколько это возможно, но не проще." Альберт Эйнштейн
|
![]() |
![]() |
![]() |
#5 |
Регистрация: 05.08.2009
Сообщений: 4
|
![]()
Проверил первый пример (на другом компьютере почему-то работает), номер договора на реальной базе распознается хорошо - действительно в 90% случаев.
С датой договора гораздо хуже (15%) - к сожалению, назначение платежа может быть не только "Оплата за товар по договору № 37 от 14.08.2009", но и "За рога и копыта по договору № 37 от 14.08.2009, НДС 172 руб.50 коп.", "В счет гашения договора займа 37 от 14.08.09, без НДС, в т.ч. проценты 10123 руб." и т.д. и т.п. То есть задача - нужно из абсолютно произвольного текста выбрать дату. Я думаю, лучше распознавать по шаблону типа "##.##.##" или "##.##.####". Причем лучше сделать это макросом, а не функцией. Иначе таблица (в ней сейчас порядка 19 тыс. строк) получается перегруженной, она очень долго пересчитывается. В день добавляется до 200 строк, и макросом прогонять только их будет быстрее (я их могу фильтровать по дате и потом распознавать). Как сделать такой макрос? |
![]() |
![]() |
![]() |
#6 | |
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,858
|
![]() Цитата:
(чтобы было на чём тестировать макрос) |
|
![]() |
![]() |
![]() |
#7 |
Регистрация: 05.08.2009
Сообщений: 4
|
![]()
Файл выкладываю.
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
справка о междугороднем тел. разговоре содержит: номер телефона абонента(6 цифр),дату(год, месяц, число) | @RH@nhel | Помощь студентам | 2 | 21.06.2009 10:12 |
выделить строки | Romuald | Microsoft Office Excel | 7 | 22.02.2008 04:58 |
Выделить все | Михаил Юрьевич | Общие вопросы Delphi | 1 | 21.02.2008 23:12 |