Одним из популярных источников для импорта в Power Query являются файлы типа .csv или .txt. Традиционные методы импорта и объединения текстовых файлов довольно неуклюжи и отнимают много времени. Однако применение Power Query многократно облегчает решение проблемы. Пусть у нас есть отчет о продажах за январь в формате .csv. Задача в том, чтобы импортировать его в Excel.
Создадим запрос Power Query (в Excel 2016) Данные – Скачать и преобразовать – Создать запрос – Из файла – Из CSV (либо Из текста, если импортируете из .txt).
В открывшемся окне указываем путь к файлу. Далее в предпросмотре убеждаемся, что выбран нужный файл, и нажимаем Изменить, чтобы попасть в редактор Power Query.
Power Query распознал и разделил данные по столбцам. Также автоматически выполнены шаги:
• Первая строка повышена в заголовки
• Изменен тип для каждого столбца
Если обработки не требуется, то результат можно выгружать в книгу Эксель Главная – Закрыть – Закрыть и загрузить.
На новом листе создается Таблица Excel.
Теперь можно проводить анализ внутри Excel. К этому мы еще вернемся. Прошел месяц, и у нас появился такой же файл .csv за февраль. Возникает вопрос, как объединить данные за два месяца? В Power Query для этого есть специальные инструменты.
Уберем пока из листа Excel данные за январь. Для этого в панели запросов через правую клавиши выбираем Загрузить в…, где меняем настройки выгрузки на Только соединение.
Выскочит предупреждение о том, что таблица будет удалена. Нажимаем Продолжить. Таблица из Excel удалилась, запрос остался в виде соединения.
Делаем новый запрос на файл за февраль и сразу создаем только соединение.
Теперь у нас два запроса, из которых нужно сделать общий, объединяющий два файла.
В Power Query есть два типа объединения запросов: Добавление (Append) и Объединение (Merge). Нас интересует добавление, т.к. таблицы должны быть сложены вместе (одна под другой). Объединение нужно для слияния запросов по ключевому полю, но об этом в другой раз.
Сейчас заходим Главная – Скачать и преобразовать – Создать запрос – Объединить запросы – Добавить.
Далее нужно выбрать добавляемые запросы.
Следует понимать две вещи.
• Добавлять можно только запросы (а не Таблицы Excel)
• Запрос в верхнем поле будет первым сверху
Добавить можно было бы и больше запросов, выбрав в верхней строке Три таблицы или больше, но у нас только два. Нажимам ОК. Создается объединенный запрос под названием Append1.
Изменим название на Отчет о продажах и выгрузим данные в Excel (Главная – Закрыть – Закрыть и загрузить). Итого получим три запроса.
Первые два служат источником для объединенного, который выгружен на лист Excel. Создадим по этим данным сводную таблицу.
Через месяц появился файл за март, и вы также решили добавить его в общий отчет и сводную таблицу. Создаем запрос к новому файлу Март.csv. Затем его нужно добавить в запрос Отчет о продажах. Однако, если повторить все шаги с добавлением, то будет создан новый общий запрос, который уже не имеет смысла, т.к. сводная таблица строится по данным из запроса Отчет о продажах. Поэтому нужно зайти в редактирование запроса Отчет о продажах и уже там добавить новый запрос за март. В редакторе Power Query выбираем Главная – Комбинировать – Добавить запросы. В окне добавления теперь только одно поле, т.к. первый запрос уже определен. Нужно выбрать лишь добавляемый.
Нажимаем ОК и снова выгружаем обновленные данные в Excel (Главная – Закрыть – Закрыть и загрузить). Теперь в Таблице Excel находятся данные за три месяца. Нужно только обновить сводную таблицу.
Для импорта новых файлов нужно будет повторить все действия:
• создание нового запроса
• добавление его в объединяющий запрос Отчет о продажах
• выгрузка в Excel
• обновление сводной таблицы.
Несмотря на то, что таким образом можно консолидировать данные из многих файлов, был бы здорово, если бы они сами добавлялись в сводный запрос. Так тоже можно.
Импорт из папки
Источником в Power Query могут быть не только отдельные файлы, но и целая папка со всем ее содержимым. Далее дело следующей техники.
Создадим папку Данные о продажах csv и поместим в нее сразу три файла за январь, февраль и март. Сделаем запрос к этой папке Данные – Скачать и преобразовать – Создать запрос – Из папки. В следующем окне указываем путь. Адрес лучше заранее скопировать и затем вставить, чем искать в проводнике. В редакторе Power Query мы увидим такую таблицу.
Выглядит подозрительно, т.к. вместо данных что-то непонятное. Действительно, сейчас видны только файлы, содержащиеся в папке, и информация о них: название, расширение, время создания, изменения и т.д. Переходим к извлечению данных из этих файлов.
Следующий шаг не является обязательным, но он позволит избежать некоторых возможных проблем в будущем. Нужно понимать, что все содержимое указанной папки будет извлечено с помощью запроса Power Query. И если туда попадет какой-нибудь, например, файл Excel, то запрос «поломается» и выдаст ошибку. Поэтому опытные пользователи создают «защиту», чтобы файлы с другим расширением отфильтровывались.
Идея в том, чтобы в столбце Extension поставить фильтр на расширение .csv. Чтобы случайно не отфильтровать файлы .CSV, сделаем все буквы для столбца Extension маленькими. Для этого выделяем столбец, далее через правую кнопку мыши Преобразование – нижний регистр. Переходим к установке фильтра. Если в выпадающем списке фильтра поставить переключатель на значение .csv, то у нас ничего не получится, т.к. при единственном типе файлов будет автоматически выделен пункт Выбрать все. Поэтому выбираем Текстовые фильтры – Равно… и указываем .csv (обязательно с точкой впереди).
Теперь случайное добавление в указанную папку файлов Excel не повлияет на работу запроса. Этот шаг, повторюсь, необязательный, но лучше прислушаться к совету опытных пользователей.
Приступим к извлечению данных. Содержимое файлов скрыто в колонке Content за значением Binary.
Перед тем, как развернуть содержимое этого столбца, избавимся от лишней информации. Выделяем столбец Content и через правую кнопку мыши выбираем Удалить другие столбцы.
Наступило время сеанса магии с разоблачением. В верхнем правом углу находится кнопка с двумя стрелками, направленными вниз.
Это кнопка загрузки двоичного (бинарного) файла. Жмем. И о чудо! Содержимое всех трех файлов один за другим выгружается в единую таблицу.
Однако на этот раз потребуется вручную внести некоторые корректировки.
• Удалим последний шаг Измененный тип
• Преобразование – Использовать первую строку в качестве заголовков
• Правой кнопкой мыши по полю Дата – Тип изменения – Дата
• Удерживая Shift, выделяем два столбца Наименование и Менеджер, затем через правую клавишу мыши Тип изменения – Текст
• Через Shift выделяем остальные столбцы Цена, Стоимость, Комиссия – правая клавиши мыши – Тип изменения – Десятичное число
• Правой кнопкой мыши по полю Дата – Удалить ошибки
• Главная – Закрыть – Закрыть и загрузить
Таким образом, мы получаем таблицу с единым заголовком, сделанную из трех файлов. На ее основе создадим сводную таблицу.
Сводная таблица построена по 116 строкам. Таким же образом можно было бы объединить и 10 файлов с сотнями тысяч строк.
Добавление в запрос новых файлов и обновление сводной таблицы
Через два месяца в наше распоряжение поступило еще два файла с данными за апрель и май. Их также требуется добавить в сводную таблицу.
И вот здесь наступает момент истины. Все что нужно, это закинуть новые файлы в указанную папку и на ленте во вкладке Данные нажать Обновить все. Первое нажатие обновит все запросы, второе – сводные таблицы.
Power Query вновь обратился в папку по указанному адресу, затащил к себе все файлы, раскрыл их, повторил все шаги обработки и выгрузил в Excel. Второе нажатие кнопки обновило сводную таблицу.
Следует только помнить, что для объединения подобным образом таблиц из разных текстовых файлов необходимо полное совпадение заголовков, иначе они автоматически разведутся по разным столбцам.
Серия видеоуроков о Power Query.
Здравствуйте, Дмитрий! Благодарю Вас за полезную информацию! У меня такой вопрос — можно ли выстраивать те же файлы .CSV-формата, но не друг под другом, а в соседние столбцы? Спасибо
Добрый день, Дмитрий! Спасибо за урок. А будет пример с функцией «объединить», которая объединяет таблицы по ключевому запросу?
Добрый день. Да, планируется серия статей по Power Query, а также новые уроки в онлайн курсе. Оставайтесь на связи.
как добавить имя файла?