![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Регистрация: 22.09.2010
Сообщений: 7
|
![]()
Помогите сопоставить 2 экселевских файла один сделан ранее (1 месяц назад), а другой только вчера.
Что требуется: Вывести формулу для вычисления которая поможет определить какие значения изменились в новом файле по сравнению со старым. В новом файле по сравнению со старым изменяется ТОЛЬКО значения в столбце Е, я эту формулу вывел всё работает, а проблема заключается в том что в новом файле появляются новые строки и в следствии этого сопоставить файлы с целью изменения значений никак не удастся. В архиве прилагается маленький пример как это все происходит. На самом же деле в реальном файле более 50к значений, поэтому вручную их нереально просмотреть. Помогите с этой проблемкой. Спасибо Архив с эксельками лежит здесь http://zalil.ru/29712827 |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 11.05.2010
Сообщений: 5,170
|
![]()
А если макросом?
Есть макрос в файле http://excel.ucoz.ru/index/comparefiles_find/0-25 Под Вашу задачу надо два раза прогонять - сперва отмечаем записи, которые появились (т.е. котрых нет в старом файле), затем все, которые отличаются по колонке Е. В итоге получите типа Код:
15 запусков совершенно бесплатно. На полгода хватит. P.S. Можно и иначе использовать. Можно конечно сделать формулами, но на 50к - замучаетесь. Или может nilem на массивах сделает быстрый вариант кода именно под эту задачу.
webmoney: E265281470651 Z422237915069 R418926282008
Последний раз редактировалось Hugo121; 22.09.2010 в 19:38. |
![]() |
![]() |
![]() |
#3 |
Участник клуба
Регистрация: 10.08.2009
Сообщений: 1,796
|
![]()
Здравствуйте serg5777.
Ваша, как и все подобные ей задачи обработки табличных данных, могут быть решены (и успешно решаются) с использованием библиотеки ADO и SQL, "инструментов" применяющихся при работе с БД (базами данных). Евгений. |
![]() |
![]() |
![]() |
#4 |
Регистрация: 22.09.2010
Сообщений: 7
|
![]() |
![]() |
![]() |
![]() |
#5 |
Регистрация: 22.09.2010
Сообщений: 7
|
![]()
Запустил файл, но ничего не происходит..
|
![]() |
![]() |
![]() |
#6 | |
Старожил
Регистрация: 11.05.2010
Сообщений: 5,170
|
![]() Цитата:
Да, небыстро - около часа получится. Но у меня машина небыстрая... Замерил 10к*10к - отработало за 6 минут. 50к*50к получается 2.5 часа.... И два прохода надо - день работы. Это если машину больше ничем не нагружать. Нет, надо на массивах делать, именно под задачу. Я как-то мерился с АДО - массивы быстрее были. Вот, нашёл - http://www.programmersforum.ru/showp...7&postcount=12
webmoney: E265281470651 Z422237915069 R418926282008
Последний раз редактировалось Hugo121; 22.09.2010 в 21:11. |
|
![]() |
![]() |
![]() |
#7 |
Старожил
Регистрация: 11.05.2010
Сообщений: 5,170
|
![]()
Вот, на массивах, должно справится с 50к за 17 минут (10к сделал за 42 сек.)
Поставьте свой путь. Код положить в модуль в new.xls. Вместо e50001 и g50001 поставьте свои максимальные адреса (лениво было код усложнять). Код:
webmoney: E265281470651 Z422237915069 R418926282008
Последний раз редактировалось Hugo121; 23.09.2010 в 12:33. |
![]() |
![]() |
![]() |
#8 |
Регистрация: 22.09.2010
Сообщений: 7
|
![]()
Спасибо, буду разбираться)
|
![]() |
![]() |
![]() |
#9 |
Регистрация: 22.09.2010
Сообщений: 7
|
![]()
В общем я не стал париться с массивами, БД я всё решил сделать из под собственно самого экселя в режиме совместимости, я вывел формулу и всё отлично работает.
Только вот проблема в том что 3к строк обрабатывается 25 минут. Это нормально? И можно ли как-нибудь ускорить работу? |
![]() |
![]() |
![]() |
#10 |
Старожил
Регистрация: 11.05.2010
Сообщений: 5,170
|
![]()
Если отвергаете макрос - никак нельзя. Если только сводной попробовать - но тут я не специалист...
Если формула на 3к отработала за 25 минут, то на 50к будет работать 6944,444444 минут. Это почти 5 суток. Хотя может я и ошибся в рассчётах. Может лучше разобраться и сделать за 17 минут?
webmoney: E265281470651 Z422237915069 R418926282008
Последний раз редактировалось Hugo121; 25.09.2010 в 13:38. |
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Сопоставление двух таблиц | Miku | Microsoft Office Excel | 2 | 25.07.2009 21:48 |
Сопоставление 2х фалов в exel | Kaddy | Microsoft Office Excel | 1 | 26.03.2009 19:29 |
Сопоставление моделей | cartoongirl | Microsoft Office Excel | 6 | 21.04.2008 14:35 |