Автор: Puric 8.2.2013, 14:07
Вопрос собственно, есть макрос который формирует из общего списка адресов по рассылке газет новый список но уже без дубликатов по адресу (тоесть сравнение не по фамилии а по адресу, неважно в принципе)
Размер списка-исходника 166048 строк 12 столбов.
Макрос проводит сравнение с разбросом в 15 строк, помечая дубликаты как пройденные и зонося их в массив (массив в цикле, цикл через 15 елемонтов начинает с 1 заменяя данные)
Проблема, постепенное затупление обработчика, то есть к примеру на первой сотне от проходит 10-12 строй за секунду, на первом десятке тысяч уже 1-2 за секунду, на двадцатой тысяче уже за 2-3 секунды одну строку.
http://www.ex.ua/view/20104862(первый лист кусочек списка, второй самы кнопки запуска макроса)
Вопрос, кто то может посоветовать=поправить макрос на кнопке "Общие пересечения" (макрос Кнопка2_Щелчок)
Заранее спасибо....
Автор: RosT 8.2.2013, 22:58
Да уж, а еще сложнее макрос не могли придумать, все решается стандартными средствами, а не функциями поиска и созданием массивов. Короче перемудрили ИМХО.
Пример реализации http://www.ex.ua/view_storage/602950633605. Есть масса других способов, но этот самый явный. Все это можно сделать макросом даже без знания бейсика.
Еще попробуй вот http://www.planetaexcel.ru/plex/ - пользуюсь довольно старой версией, но и она много умеет. В новой наверняка наворотили еще больше.
Автор: Puric 9.2.2013, 0:10
Цитата(RosT @ 8.2.2013, 22:58)
Да уж, а еще сложнее макрос не могли придумать, все решается стандартными средствами, а не функциями поиска и созданием массивов. Короче перемудрили ИМХО.
Пример реализации http://www.ex.ua/view_storage/602950633605. Есть масса других способов, но этот самый явный. Все это можно сделать макросом даже без знания бейсика.
Еще попробуй вот http://www.planetaexcel.ru/plex/ - пользуюсь довольно старой версией, но и она много умеет. В новой наверняка наворотили еще больше.
Сложность в чем....я то могу и в ручную отсортировать, НО сколько времени у меня уйдет на перебор 166 тысяч строк, да и потом их надо сравнить еще с 80 тысячами, и так раз в квартал...руками и глазами напряжно от того задача
Есть список льготной подписки на газету назовем №1 в нем 166 тыс строк - потенциальных получателей, НО по одному адресу могут проживать несколько людей из этого списка, это надо исправить, исключив дубликаты и сформировать новый список где из дубликатов (а на один адрес может проживать два и три, четыре) остаеться только ОДИН...
Далее есть список №2 ветеранской подписки, в нем 8 тысяч строк, и соответственно есть тоже дубликаты со списком №1 НО здесь важны фамилии, и при сортировке надо сделать так что бы приплюсавав его к списку №1 и выкинув дубликаты приоритетом адресата остался список №2.
Итоговым должен быть список для укрпочты, где одному адресу соответствует один экзеспляр газеты, причем (почему закрашиваю ячейки цветом) отдельно в списке должно быть выделенно адресатов списка №2....
Вот такая ерунда в прошлом году заняла две недели труда у 3 человек....создав этот макрос я сузил время до 24 часов....но осталась проблема, запускаю мокрос с перерывом на каждой 20 тыс.
Автор: Puric 9.2.2013, 0:22
За ПЛЕКС спасибо....попробую поюзать...похоже что надо!
Автор: RosT 9.2.2013, 8:19
А функцией ВПР() пользоваться не пробовал для сопоставления данных с первого списка со вторым. Работы максимум на 5 минут. Единственный минус, если адреса написаны по разному(нет точного совпадения), то до одного места обработка будет.
Автор: Puric 9.2.2013, 10:29
Цитата(RosT @ 9.2.2013, 8:19)
А функцией ВПР() пользоваться не пробовал для сопоставления данных с первого списка со вторым. Работы максимум на 5 минут. Единственный минус, если адреса написаны по разному(нет точного совпадения), то до одного места обработка будет.
К сожелению иногда с пробелами траблы, и с вЫсоТОй (дом 12а или дом 12А или дом 12 А) строки, поэтому в код макроса еще внесена штука которая понижает все символы в строке и удаляет из нее пробелы.
Но все же вопрос открыт. Может кто то сможет подсказать в чем проблема кода!!!