|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
05.05.2011, 14:54 | #1 |
Регистрация: 12.01.2011
Сообщений: 9
|
Процедура поиска значений
Имеется таблица с большим объемом данных (~66K строк), и ~10 столбцов. Например: Один из столбцов имеет статус индикатора (т. е. по нему нужно понимать с какой строкой работать) "New" (столбец 7). Задача стоит в том, чтобы для каждой строки с "New" выполнить поиск подобных строк, и в случае обнаружения подобной строки, у которой во 2 и 3 столбце в названии отсутствуют вопросы "??". Проблема заключается в том, что если подходить к решению задачи в лоб, то из-за большого объема данных, время выполнения макроса очень велико.
Код:
Последний раз редактировалось Bur; 05.05.2011 в 15:24. |
05.05.2011, 15:28 | #2 | |
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,858
|
Оптимизировать несложно.
Выложите пример файла (хватит 10-100 строк с данными) Обязательно макрос? или, может, формула в дополнительном столбце подойдёт? Столбцы 5 и 7, по которым производится поиск, а также столбцы 2 и 3, где вносятся изменения, не могут оказаться в другом месте? (порядок столбцов не меняется?) Цитата:
Брать данные из первой попавшейся? |
|
05.05.2011, 15:29 | #3 |
Старожил
Регистрация: 02.05.2009
Сообщений: 3,907
|
Файл оригинал какого расширения xls или xlsx
Анализ,обработка данных Недорого
|
05.05.2011, 15:42 | #4 | |||
Регистрация: 12.01.2011
Сообщений: 9
|
Цитата:
Цитата:
Цитата:
Берется первое значение, потому как предполагается что все остальные уже редактированные и идентичны. |
|||
05.05.2011, 15:42 | #5 |
Регистрация: 12.01.2011
Сообщений: 9
|
|
05.05.2011, 15:43 | #6 |
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,858
|
Код:
__Полезные надстройки для Excel. Парсинг сайтов и файлов.
Макросы любой сложности на заказ. Мониторинг цен конкурентов Последний раз редактировалось EducatedFool; 05.05.2011 в 15:46. |
06.05.2011, 15:27 | #7 |
Регистрация: 12.01.2011
Сообщений: 9
|
EducatedFool, Спасибо!
Есть-ли эффективный способ по подкрашиванию ячеек? Я сделал так: Код:
|
06.05.2011, 15:56 | #8 |
Старожил
Регистрация: 11.05.2010
Сообщений: 5,166
|
Если у Вас "New" в >50% значений - то вероятно можно и так.
Ну а если иначе - то анализировать всё же следует значения массива, а уж как быстрее подкрасить на листе - это нужно подумать... может Union подключить, или в строку адреса собирать... P.S. В 3 раза ускоряет отключение обновления экрана и пересчёта, и закрашивание диапазона: Код:
Из 15000 строк 2515 New.
webmoney: E265281470651 Z422237915069 R418926282008
Последний раз редактировалось Hugo121; 06.05.2011 в 16:13. |
10.05.2011, 18:53 | #9 |
Регистрация: 12.01.2011
Сообщений: 9
|
Появилась еще одна задача поиска значений.
Помимо данных, которые были в файле выше, добавляется еще один столбец Band. Так вот, нужно найти те строки, которые имеют идентичные значения во 2 и 3 столбце, но различаются по полю Band. Причем, нужно найти именно те позиции, которые выделяются на фоне аналогичных, т. е. их меньшенство. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Рекурсивная процедура поиска значений элементов массива | кот Бегемот | Помощь студентам | 0 | 18.11.2010 11:38 |
Вопрос по решению (процедура поиска) | dex92 | Паскаль, Turbo Pascal, PascalABC.NET | 5 | 18.05.2010 21:29 |
процедура поиска | PlayHard | Помощь студентам | 0 | 15.05.2010 10:46 |
Процедура поиска и копирования | frodor999 | Помощь студентам | 1 | 06.12.2009 15:29 |
Процедура поиска нескольких файлов одновременно | GvR | Общие вопросы Delphi | 3 | 15.11.2009 02:43 |