Макрос для извлечения части данных из книги Excel

Автор Onetime, 24 июня 2024, 21:07

Onetime

Добрый день. Прошу помочь с написанием макроса в Excel.

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

Надстройки в Excel отсутствуют, поэтому вижу решение только путем макроса. Одно из решений вижу как использование dic = CreateObject("Scripting.Dictionary"), может у вас есть другие оптимальные решения без перегрузки кэша.

Самые важные фильтры как раз для создания сокращенного массива вижу "Названия ЖК", "месяц и год продажи".

Администратор

Вы хотите извлечь данные из большого эксель-файла, не открывая его, т.к. файл очень большой и долго открывается?
Если да, то попробуйте спросить на каких-нибудь форумах или поищите в интернете Power Query. Я с ним не работаю, поэтому не разбираюсь в нём.

Если использовать стандартные средства vba-excel, то потребуется открыть файл, чтобы извлечь из него данные. Можно попробовать использовать библиотеки для работы с базами данных, но как-раз Power Query и был сделан, чтобы заменить все старые инструменты для работы с базами данных.

Но чтобы использовать Power Query данные должны быть в виде таблицы: строки, столбцы. Без каких-либо объединений ячеек, без пустых строк и тому подобного - только обычная таблица.

Onetime

Так Power Qwerty тоже первый на ум пришел. Но нет надстроек, устанавливать не хотят, ссылаясь на безопасность. Поэтому придумываю костыльные методы.

Администратор


Onetime

Минуты две. Там данные о продажах с 2009 года по всей Москве всех конкурентов. Хочется хотя бы отсечь до 2023 года. Остальные фильтрации и срезы проще уже через сводную с меньшим массивом реализовать

Администратор

Какая сейчас проблема у вас? Файл долго открывается или данные долго обрабатываются?

Onetime

Долго открывается и внутри руками только отсеивать (как умная таблица организован). Копировать массив в отдельную книгу и потом с ней работать. Часть фильтров одни и те же, задача регулярная каждый месяц. Хочется поставить набор фильтров, чтобы извлекался меньший массив и уже с ним работать (дабы внутри не порушить записи).
Создать макрос, чтобы в новой книге его запускать и он туда выгружал массив поменьше.

Onetime

Один из вариантов решения вижу в этой ветке. Не уверена до конца, что будет нормально работать в моей ситуации.
https://www.planetaexcel.ru/forum/index.php?PAGE_NAME=read&FID=1&TID=143435&TITLE_SEO=143435-vba.-perenos-dannykh-iz-odnoy-tablitsy-v-druguyu-po-klyuchu

Администратор

В этом сообщении ведь файл сначала надо открыть, он будет открываться две минуты.
Или это не является проблемой? Главное извлечь данные?

Администратор

Написал вам письмо на почту. Написал именно на почту, а не на форум.