Как объединить файлы с использованием PowerQuery?
Объединить несколько файлов одинаковых по структуре, но разных по наполнению не так уж и сложно. Но что делать, если количество объединяемых файлов больше тысячи? Расскажем о том, как используя Power Query справиться с этой задачей.
Для объединения подходят многие файлы с данными. Обычно это результаты выгрузки из автоматизированных систем.
Файлы могут быть в формате txt, csv, xml, xlsx. C текстовыми файлами txt, csv никаких проблем нет, данные просто будут в одной общей таблице.
C xml-файлами немного сложнее, так как их структура может быть непредсказуема (многоуровневая табличная архитектура), но, в основном, надстройка PowerQuery легко справляется и с ними.
Кроме того, мы можем ещё до объединения файлов сделать обработку.
Например:
- удалить или отфильтровать столбцы,
- разбить столбец на несколько,
- объединить несколько столбцов в один,
- удалить лишние пробелы в столбце.
Можно даже изменить тип данных столбца, если это необходимо. Следует отметить, что данная настройка есть по умолчанию в MS Excel с версии 2016 года.
Как все это работает?
Допустим у нас есть папка с файлами, которые необходимо объединить в один. Первым делом, мы открываем пустой файл xlsx.
В верхнем меню выбираем «Данные», затем «Создать запрос» и указываем нашу папку с файлами.
Нажимаем объединить и изменить
Нажимаем кнопку ОК и работаем с предварительным просмотром, где можно производить редактирование таблицы.
После проведенных манипуляций (фильтрование, удаление каких-либо полей и т.д.), нажимаем «Закрыть и загрузить». Объединенная таблица (запрос) выгрузится на лист. Кроме того, если у нас поменяются исходные файлы, не требуется заново создавать запрос, достаточно будет просто обновить уже имеющийся.
Ещё одна, очень важная, возможность PowerQuery — объединение нескольких запросов.
Например, мы первым запросом объединили несколько файлов, вторым объединили другие файлы. Тогда можно их соединить, при наличии у них одинакового поля. Следует отметить, что поддерживается правое, левое и полное соединение.