Найти в Дзене

Небольшой макрос для поиска множества значений в нескольких файлах по колонке с заданным заголовком

Выкладываю небольшой инструмент, который родился на работе. Заказчик прислал списки имеющегося у него оборудования в Экселе -множество гигантских файлов по 5-6 миллионов строчек в каждом. Разумеется, такие объемы отнюдь не для Экселя, но других вариантов выгрузки у заказчика нет. По-хорошему, надо эту массу данных импортировать в MS Access, но корректно они импортироваться не захотели, а потребовали массу ручных исправлений форматов.

Следовательно, "работаем с тем, что есть". А работать надо - необходимо сравнивать имеющееся на руках оборудование комплектами с тем оборудованием, что числится у заказчика. По серийникам, например. А таблицы заказчика несортированы, верней, сортированы по дате поступления, то есть, для одного комплекта оборудования один серийник может быть в одном файле, другой-в другом, причем в каждом файле по нескольку вкладок. Если делать вручную, то для того, чтобы вытянуть данные по одному комплекту, надо открыть несколько файлов и по одному серийнику поискать в каждом, скопировать в отдельный файл строчки.

Каждый, кто занимался таким мартышкиным трудом (как говорят на Западе, "monkey job"), оценит страстное желание автоматизировать это хоть как-то.

Так и появился этот макрос.

Те данные, которые мы собираемся искать, мы копируем списком в первый столбец пустого файла, и даем этому столбцу заголовок того столбца, в котором будем искать, вот так

Файл запроса, не должен содержать пустых строчек между данными
Файл запроса, не должен содержать пустых строчек между данными

Макрос в каждом файле, на каждой странице в первой строчке будет искать заголовок "Серийник" и в найденном столбце будет искать данные, которые стоят в запросе от 2-й строчки до конца файла запроса

Сохраняете файл запроса, запускаете макрос с названием query_simple

Сначала макрос запрашивает, чтобы вы выбрали файл запроса,

Выберите файл запроса
Выберите файл запроса

потом - выберите те файлы, в которых ищете

-3

В результате у вас создается файл, в который перенесены все строчки, в которых найдены данные в запросе.

В моем примере найдено только два значения списка. Но если их окажется более миллиона, то макрос добавит в файл результата нужное количество страниц.
В моем примере найдено только два значения списка. Но если их окажется более миллиона, то макрос добавит в файл результата нужное количество страниц.

Одним словом, качайте, пользуйтесь.

____________________________________________________________

Как установить макрос в Эксель видео (не мое)

Скачать макрос