Как добавить суффикс в power query

Марк Мур. Power Query

Power Query — это технология подключения к данным для их последующего анализа. Power Query – инструмент бизнес-анализа (BI), который ранее могли использовать только подготовленные ИТ-специалисты. Сегодня Microsoft стремится сделать BI доступным обычному пользователю Excel. Power Query способен подключаться к нескольким источникам данных, объединять их и помещать в одну электронную таблицу. Power Query управляет данными еще до того, как они попадут в Excel. Данные Power Query можно загрузить непосредственно на лист Excel или в модель данных Excel. При загрузке данных на лист Excel они отображаются в виде таблицы, которую можно обновить (она повторно подключается к источнику и извлекает новые данные). Работа с моделью данных описана в Марк Мур. Power Pivot.

Скачать заметку в формате Word или pdf, примеры в архиве. Оригинальные рабочие файлы можно также скачать здесь.

Установка Power Query

Функции Power Query доступны в версиях Excel 2016 и 2019 на вкладке Данные в области Получить и преобразовать данные (рис. 1).

Рис. 1. Функции Power Query доступны в Excel 2016 или 2019 на вкладке Данные

Если вы используете Excel 2010 или 2013 загрузите Power Query с сайта Microsoft (выберите 32- или 64-битный вариант). Не все конфигурации поддерживают Power Query (например, на одном из ПК у меня установлен MS Office для дома и учебы 2013; на нем Power Query не запустился). В более ранних версиях Excel Power Query не работает. Для установки Power Query закройте Excel, загрузите msi-файл, запустите его, следуйте подсказкам. Если установка прошла успешно, вы увидите новую вкладку в Excel (рис. 2).

Рис. 2. Вкладка Power Query в Excel 2010 или 2013; чтобы увеличить изображение кликните на нем правой кнопкой мыши и выберите Открыть картинку в новой вкладке

Подключение к источникам данных

Power Query может подключаться к различным типам источников данных:

  • Из Интернета. При нажатии на эту кнопку, появится окно ввода URL-адреса для извлечения данных.
  • Из файла. Именно этому варианту посвящена основная часть настоящей заметки.
  • Из базы данных. Иногда ИТ-специалисты защищают свои базы данных и не предоставляют к ним доступ. Скажите, что вам нужен доступ только для чтения.
  • Из облака Azure, где вы можете хранить собственные данные, или через Azure Marketplace приобрести доступ к наборам данных. Существуют наборы данных, связанные с демографией, статистикой занятости и погодными условиями.
  • Из других источников. Например, из Facebook.

Извлечение данных из Интернета

Откройте Excel. Перейдите на вкладку Power Query или Данные (в зависимости от версии Excel). Нажмите на кнопку Из интернета. В появившемся окне введите URL-адрес http://markmoorebooks.com/powerquery-capitals/ После подключения Power Query появится окно навигатора (рис. 3). В левой части окна отображаются таблицы, доступные на веб-странице. Эта конкретная веб-страница на сайте Майка Мура имеет только одну таблицу.

Рис. 3. Окно навигатора

Щелкните по Table 0. В правой части окна появится предварительный просмотр несколько записей из всего массива данных с веб-страницы. Пока данные не загружены в Excel, и вы можете просто их изучить (нет необходимости загружать сотни или тысячи записей в Excel только для того, чтобы узнать, что вы выбрали неверную таблицу. Можно также обновить запрос, нажав пиктограмму маленькой страницы в правом верхнем углу окна навигатора. Это удобно, если вы подключаетесь к таблице, которая часто меняется, например, это данные валютного курса или цены на акции. Если вы выбрали верную таблицу, нажмите Загрузить. Excel подключится к веб-странице и загрузит данные (рис. 4).

Рис. 4. Загруженная таблица

Загруженные данные можно обновить несколькими способами:

  • Щелкните правой кнопкой мыши на ячейке таблицы. Выберите в меню Обновить.
  • Выберите ячейку в таблице. Пройдите по меню Данные –> Запросы и подключения –> Обновить всё -> Обновить.

Это самый простой способ загрузки данных в Excel с помощью Power Query. Вы подключились к источнику и извлекли необработанные данные. Иногда этого недостаточно. Но даже в этом простом примере есть ошибка. Обратите внимание, что заголовки столбцов рассматриваются как строки данных, а не как строки заголовков. Чтобы исправить это, необходимо сформировать данные.

Запросы книги Excel

Power Query запоминает, как он ранее загружал данные. Каждая загрузка хранится в пакете запроса. Пакет запроса отображается на панели Запросы и подключения. Давайте поправим наш запрос. Наведите курсор мыши на Table 0. Вы увидите информацию о запросе (рис. 5). Кликните Изменить. Откроется редактор запросов.

Рис. 5. Информация о запросе

Редактор запросов

Рассмотрим работу редактора на примере CSV-файла. Перейдите на вкладку Данные, кликните на кнопке Из текстового/CSV файла. Выберите тестовый файл StatesAndCapitals.csv. Нажмите Импорт. В окне импорта кликните Изменить. Откроется окно Редактора запросов. Здесь очень много функций, которые позволяют подготовить данные к импорту.

Рис. 6. Редактор Power Query

Книга может содержать несколько запросов. Если кликнуть на стрелке 1 (см. рис. 6) можно переключаться между запросами. Автофильтр (2) был создан автоматически. Можно нажать кнопки для фильтрации данных. Кнопка 3 дает доступ к тем же функциям, что и на ленте. Если вам нужно изменить порядок столбцов, щелкните заголовок столбца и перетащите в нужное место. Вы можете задать имена столбцов по своему усмотрению. Щелкните правой кнопкой мыши по столбцу и выберите Переименовать.

Обратите внимание, что без Power Query вам нужно было бы импортировать все данные в Excel, а затем применить автофильтр. Что произойдет, если весь набор данных не помещается на листе? Вам нужно будет придумать, как разделить данные на меньшее количество строк. С помощью Power Query можно использовать редактор запросов для просмотра данных, их фильтрации и импорта в Excel только интересующих вас записей. Кроме того, Power Query запоминает все выполненные действия. Вы можете обновить запрос, и все шаги будут выполнены повторно.

Параметры запроса

Справа в окне редактора расположены Параметры запроса. Вы можете переименовать запрос (см. цифру 4 на рис. 6). Сейчас запрос называется StatesAndCapitals. Ниже записываются действия в рамках запроса. Таким образом Power Query запоминает, что вы сделали, и повторно применяет все шаги при нажатии кнопки Обновить. Здесь вы также можете изменить порядок шагов.

Подробнее о функциях ленты Редактора Power Query. На вкладке Главная крайняя слева группа Закрыть представлена одной кнопкой Закрыть и загрузить (рис. 7).

Рис. 7. Кнопка Закрыть и загрузить

Кнопка закрывает Редактор и помещает данные в электронную таблицу. По умолчанию, данные будут загружены на текущий лист и представлены в форме Таблицы. Если вы нажмете на стрелку, то получите доступ к дополнительной опции Закрыть и загрузить в…, позволяющей загрузить результат запроса на другой лист и в другом формате (рис. 8).

Рис. 8. Дополнительные опции кнопки Закрыть и загрузить

Группа Запрос включает 4 кнопки (рис. 9).

Рис. 9. Группа Запрос

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

Кнопка Свойства (рис. 10) открывает окно, в котором можно переименовать запрос, добавить описание или задать опцию Быстрая загрузка данных (при этом Excel может подвиснуть).

Рис. 10. Свойства запроса

Кнопка Расширенный редактор позволяет редактировать запрос на уровне кода (рис. 11). Power Query использует новый язык программирования под названием M.

Рис. 11. Расширенный редактор

Кнопка Управление позволяет (рис. 12):

  • удалить запрос;
  • создать идентичный запрос (продублировать), с тем чтобы сохранить текущий запрос, а дубль продолжить редактировать;
  • создать запрос, ссылающийся на текущий запрос.

Рис. 12. Кнопка Управление

Группа Управление столбцами.

Рис. 13. Группа Управление столбцами

Опция Выбор столбцов открывает окно, в котором можно выбрать столбцы для импорта в Excel. Опция Перейти к столбцу также открывает новое окно, в котором представлен список всех столбцов, и есть окно поиска. Эти опции удобнее обычных средств, если таблица очень большая, и ее сложно обозреть на экране. Опция Удалить столбцы удаляет выбранный столбец из запроса. А опция Удалить другие столбцы удаляет все остальные столбцы, кроме выбранного.

Для следующего небольшого упражнения должен быть открыт Редактор запросов с данными StatesAndCapitals. Щелкните столбец Column2, чтобы выделить его (рис. 14).

Рис. 14. Выделение столбца в Редакторе запросов

Щелкните кнопку Удалить столбцы. Column2 теперь нет. На самом деле, нам еще понадобится этот столбец. Чтобы вернуть его перейдите в окно Параметры запроса и отмените удаление столбца, щелкнув значок рядом с пунктом Удаленные столбцы (рис. 15). Column2 восстановится. Вы можете рассматривать записанные шаги как пункты множественной отмены.

Рис. 15. Отмена последнего шага Удалить столбцы

Группа Сократить строки позволяет сохранить или удалить заданное число строк, начиная с выбранной (рис. 16). Опция Удалить чередующиеся строки позволяет выполнить систематическую выборку. Например, вы хотите сохранить каждую N-ю запись. Если вы добавили вычисляемые столбцы в Power Query, некоторые из вычислений могут приводить к ошибке. Такие строки можно удалить опцией Удалить ошибки.

Рис. 16. Группа Сократить строки

Следующая группа позволяет отсортировать данные по возрастанию или убыванию на основе выбранного столбца.

Группа Преобразование (рис. 17). Это, наверное, самое мощное средство Power Query. Рассмотрим пример. Если у вас был открыт Редактор запросов, закройте его.

Рис. 17. Группа Преобразование

В качестве источника используем файл Excel, содержащий отчасти некорректные записи. В меню Данные кликните Получить данные –> Из файла –> Из книги. Выберите SalesData.xlsx. Выберите Table1 в окне Навигатора. Предварительный просмотр таблицы появится в правой части окна (рис. 18).

Рис. 18. Окно навигатора с предварительным просмотром данных из Table1

Поскольку вы хотите изменить данные перед загрузкой в Excel, не нажимайте кнопку Загрузить, вместо этого нажмите кнопку Изменить. Откроется Редактор запросов. Структура этого файла не соответствует принятым стандартам базы данных. Столбец Регион содержит собственно регион и через дефис имя продавца. Разделим этот столбец на два. Щелкните на столбце Регион, чтобы выбрать его. Нажмите кнопку Разделить столбец, а затем по разделителю. Откроется окно Разделить столбец по разделителю (рис. 19). Excel сообразил и подставил в первое поле —Пользовательский—, а во второе знак дефиса. Если этого не произойдет, сделайте установки вручную. Нажмите OK. Столбец разделится на два. Переименуйте новые столбцы.

Рис. 19. Окно разделения столбца по разделителю

Обратите внимание на три варианта в поле Разделение по. Вы можете столкнуться с проблемой, если разделитель используется также внутри данных. Например, North-East-Lisa, или West-Jean-Paul. Расширенные параметры позволяют в качестве разделителя указать специальный символ.

Замените регион Intl на International. Для этого выделите столбец Регион, щелкните на кнопке Замена значений. В открывшемся окне заполните поля (рис. 20). Нажмите Ok.

Рис. 20. Замена значений

Обратите внимание, если вы поместите art в поле Значение для поиска, замена выполнится для фрагментов слов artist, part, rampart и т.д. Воспользуйтесь опцией Ячейки целиком в поле Расширенные параметры (рис. 21). Здесь также можно добавить некоторые специальные символы в поля Найти и Заменить.

Рис. 21. Расширенные параметры окна Замена значений

Кнопка Тип данных. Большую часть времени пользователям Excel не нужно беспокоиться о типах данных. Excel (и Power Query) сами определяют, что перед ними: число, текст или дата. Однако, поскольку вы собираетесь выполнять анализ импортированных данных или включать их в диаграмму, лучше убедиться, что данные соответствуют ожиданиям, сразу при импорте, а не изменять их позже. Изменение типов данных при импорте также поможет выявить неточности. Продолжим работу с текущим запросом.

Щелкните заголовок столбца Дата, чтобы выбрать столбец. Нажмите кнопку Тип данных. Выберите в меню Дата (рис. 22). Первая строка содержит ошибку. Что-то пошло не так с изменением типа данных. Удалите последний шаг преобразований, чтобы увидеть предыдущее значение (его также можно увидеть на рис. 20). База данных содержит ошибку – 6/32/2016.

Рис. 22. Задание типа данных

У вас есть несколько способов исправить ошибку:

  • Можно удалить строки, содержащие ошибку (пройдите в Редакторе по меню Сократить строки –>Удалить строки –>Удалить ошибки)
  • Можно добавить вычисляемый столбец, который проверяет ошибки и заменяет их датой по умолчанию.
  • Можно исправить данные (в исходном файле).

Способ, которым вы решите исправить ошибку, зависит от вас. Задача примера – показать, что внимание в отношении правильных типов данных помогает обнаружить ошибки.

Название опции Использовать первую строку в качестве заголовка говорит само за себя.

Кнопка Группировать по позволяет суммировать данные по мере необходимости. Закройте текущий запрос, нажав Закрыть и загрузить. Начнем работу с новым запросом. Перейдите на новый лист Excel. Пройдите по меню Данные –> Получить данные –> Из файла –> Из книги. Импортируйте файл GroupBy.xlsx. Выберите Table2. Нажмите Изменить, чтобы перейти в Редактор запросов. Предположим, вам нужно отобразить среднее кол-во проданных изделий в разрезе регионов. Нажмите кнопку Группировать по. В открывшемся окне введите значения, как на рис. 23. Нажмите Ok.

Рис. 23. Параметры группировки

Ваш набор данных изменяется, и теперь у вас есть только регионы и среднее кол-во проданных изделий (рис. 24). Для красоты замените регион Intl на International, отсортируйте регионы по алфавиту, назначьте формат для среднего кол-ва – Целое число.

Рис. 24. Среднее кол-во проданных изделий по регионам

Также можно сгруппировать несколько столбцов. Если вы остались в Редакторе запросов, перейдите к области Параметры запроса и щелкните значок x рядом с Сгруппированные строки, чтобы удалить группировку.

Рис. 25. Отмена группировки

Выделите столбец Region. Нажмите кнопку Группировать по. Включите режим Подробнее (рис. 26). Нажмите кнопку Добавление группирования, чтобы добавить еще один столбец. Измените установки, как показано на рис. 26. Нажимать Ok.

Рис. 26. Группировка по двум столбцам

В наборе данных теперь есть среднее количество проданных товаров для каждой комбинации региона и продавца (рис. 27).

Рис. 27. Исходные данные, сгруппированные по регионам и продавцам

Вы можете спросить, зачем всё это нужно? Ведь Excel уже имеет сводные таблицы… Excel предоставляет различные способы выполнить одну и туже работу. Power Query может быть лучше, чем сводная таблица (или формулы) в следующих ситуациях:

  • Кол-во строк более 1 млн, что не позволит разместить всю базу данных на одном листе.
  • Файл Excel и так подтормаживает. Еще одна сводная таблица еще более замедлит расчеты.
  • Вам нужно очистить данные, прежде чем собрать их в сводную таблицу. Поскольку данные в последующем будут обновляться, это может потребовать постоянной их «чистки».

Добавление запроса

Речь о добавлении второго запроса. Чтобы это было возможно, два источника данных должны иметь идентичные структуры: одинаковое количество столбцов, одинаковые типы данных в каждом столбце, одинаковые имена столбцов, одинаковый порядок столбцов.

Рассмотрим, например, файлы JanSales.xlsx и FebSales.xlsx. Они имеют одинаковую структуру, в них просто содержатся данные за разные месяцы. Задача – объединить данные из этих файлов. Создайте запрос для JanSales.xlsx. Оставаясь в Редакторе запросов создайте новый запрос, пройдя по меню Главная –> Новый запрос –> Создать источник –> Файл –> Excel (рис. 28).

Рис. 28. Новый запрос

Выберите FebSales.xlsx. Теперь у вас есть два запроса в книге (рис. 29).

Рис. 29. Два запроса

Нажмите на ленте кнопку Добавить запросы. Выберите таблицу, которая не является текущей (рис. 30). Нажмите Ok. Теперь оба запроса объединены в один – FebSales. Нажмите Закрыть и загрузить. Данные по продажам за два месяца отразятся на одном листе Excel. На их основе можно построить сводную таблицу или дашборд.

Рис. 30. Добавление новой таблицы к текущей

При добавлении запросов источники данных не обязательно должны быть одного типа. Можно объединить файл CSV с файлом Excel, если они имеют одинаковую структуру. Даже если первоначально у них разная структура, вы можете привести их к единой структуре в процессе обработки данных в Редакторе запросов.

Объединение запросов

Эта опция описывает ситуацию, когда у вас есть две таблицы, и у них есть одно общее поле, которое можно использовать для создания связи между таблицами и извлечения записей из обеих таблиц на основе общего значения. Например, у вас есть таблица с клиентами, и другая таблица со счетами клиентов. Каждый клиент может иметь один или несколько счетов-фактур (это один ко многим). Вы можете использовать Power Query для агрегирования счетов по клиентам.

Перейдите на новый лист. Импортируйте Companies.csv. Оставаясь в Редакторе запросов, пройдите по меню Создать источник –> Файл –> Текстовый или CSV-файл. Откройте CompanyInvoice.csv. У вас два запроса в одном файле (рис. 31).

Рис. 31. Клиенты и счета

Каждая компания имеет свой идентификатор и продавца (левая таблица). Справа показано, что каждая компания имеет несколько счетов. Цель – создать запрос, который будет возвращать информацию по компании и сумму всех счетов-фактур. Щелкните на запрос Company, чтобы выбрать его. Щелкните Объединить запросы. Появится окно Слияние (рис. 32). Выберите запрос для слияния – CompanyInvoice и установите Тип соединения. Кликните на поле CompanyID в обеих таблицах (это создает связь между таблицами). Нажмите Ok.

Рис. 32. Окно Слияние

Вы связали исходные файлы. В окне Редактора отображается новый столбец. Вам нужно нажать на новый столбец и сообщить Power Query, какие записи нужно вернуть и что вы хотите выполнить агрегацию. Нажмите на двойную стрелку в NewColumn (рис. 33). Выберите Агрегирование (при этом параметры изменятся). Выберите Сумма Invoice Total. Кликните Ok. Вы создали запрос, который объединяет два CSV-файла и вычисляет общую сумму счетов по клиенту (рис. 34).

Рис. 33. Завершение агрегации двух таблиц

Рис. 34. Агрегированная таблица

Типы соединений

Power Query позволяет определить несколько типов соединений между таблицами (рис. 35):

  • Внешнее соединение слева. Запрос вернет все записи из левой таблицы и только совпадающие записи из правой таблицы.
  • Внешнее соединение справа. Запрос вернет все записи из правой таблицы и только совпадающие записи из левой таблицы.
  • Полное внешнее. Запрос вернет все записи из обеих таблиц.
  • Внутреннее. Это наиболее распространенный тип. Запрос вернет записи из обеих таблиц, где общее поле равно.
  • Анти-соединение слева. Запрос вернет записи из левой таблицы, в которой нет совпадений в правой таблице.
  • Анти-соединение справа. Запрос вернет записи из правой таблицы, где нет совпадения в левой таблице.

Рис. 35. Типы соединений

Вкладка Преобразование

До сих пор вы рассмотрели кнопки Редактора запросов на вкладке Главная. Перейдем на вкладку Преобразование. Часть кнопок совпадает, но есть и целый ряд новых (рис. 36). Группа Таблица. Транспонирование: переключение столбцов и строк. Обратить строки: обратный порядок сортировки записей. Считать строки: подсчитывает количество строк и дает одну запись с количеством строк (это хороший способ увидеть, поместятся ли все записи на листе).

Рис. 36. Вкладка Преобразование; показаны только оригинальные кнопки; для удобства лента представлена в виде двух рядов

Группа Любой столбец. Заменить ошибки: заменяет ошибки в выбранных столбцах указанным значением (рис. 37). Заполнить: заполняет пустые ячейки данными из других строк. Это не перезапишет непустые ячейки. Полезно, когда ради украшательства таблицы не заполняют по всем строкам, а группируют, внося повторяющиеся значения один раз.

Рис. 37. Заменить ошибки

Отменить свертывание столбцов. Давайте сделаем небольшое упражнение. Закройте все открытые окна запросов. Импортируйте файл Unpivot.csv (рис. 38). Вы часто будете получать файлы в таком формате. Отдельный столбец для каждого месяца неудобен для аналитических целей. Сводную таблицу по не сделаешь. Решение – преобразовать данные внутри запроса перед импортом в Excel.

Рис. 38. Таблица в формате неудобном для дальнейшей обработки

Кликните на столбец Jan, затем нажмите Shift и кликните на столбце Dec, чтобы выбрать все столбцы месяцев. Нажмите кнопку Отменить свертывание столбцов на вкладке Преобразования. Запрос отобразит все месяцы в одном столбце и значения в следующем столбце (рис. 39). Можно переименовать столбец Атрибут в Месяц.

Рис. 39. Вид запроса после отмены свертывания столбцов

Столбец сведения: это противоположная операция. Вернитесь к запросу из предыдущего примера (рис. 39), выделите столбец Атрибут, кликните кнопку Столбец сведения, Редактор запросов создаст один столбец для каждого месяца.

Группа Столбец «Текст». Кнопку Формат можно использовать для форматирования текстовых значений в столбце (рис. 40).

Рис. 40. Кнопка Формат

Усечь: удаляет начальные и конечные пробелы из столбца (но не трогает лишние пробелы между словами). Очистить: удаляет все непечатные символы из столбца. У вас когда-нибудь была ситуация, когда вы вставляете данные в Excel, и данные переходят к следующей строке? Это потому, что исходные данные имели непечатные (и невидимые) возвраты каретки.

Извлечь: извлекает значения из столбца и заменяет их усеченными/измененными значениями (рис. 41). Например, если у вас есть столбец с полным названием месяцев – январь, февраль и т.д., – и вы использовали опцию Извлечь –> Первые символы –> 3 символа, то столбец будет преобразован в янв, фев и т.д. (с помощью опции Формат –> Добавить суффикс вы можете снабдить записи точкой на конце – янв., фев.). Опция Длина возвращает число символов в ячейке.

Рис. 41. Кнопка Извлечь

Выполнить анализ: используется для парсинга веб-сайтов, которые возвращают данные в формате XML или JSON (рис. 42).

Рис. 42. Кнопка Выполнить анализ

Группа Столбец «Количество». Команды в этой группе недоступны, пока вы не выберите столбец, содержащий числа. Все функции в этой группе изменят содержимое столбца и применят указанное вычисление (рис. 43). Например, если требуется округлить числа в столбце, щелкните Округление, а затем Округление с увеличением (вверх), Округление с уменьшением или Округление… до заданного числа знаков после запятой.

Рис. 43. Кнопки группы Столбец «Количество»

Вкладка Добавление столбца

На этой вкладке вы также увидите много знакомых кнопок. Но есть и новые (рис. 44).

Рис. 44. Новые кнопки на вкладке Добавление столбца

Настраиваемый столбец: позволяет добавлять столбцы с пользовательским расчет. Например, импортируйте файл Salesdata.xlsx (если вы выполняли примеры выше, то файл уже импортирован; данные сохранены в Table1, так что просто выберите в Редакторе соответствующий запрос и нажмите кнопку Изменить). Перейдите в Редакторе на вкладку Добавление столбца. Кликните на кнопке Настраиваемый столбец. Откроется окно Настраиваемый столбец. Переименуйте новый столбец. Кликните после знака равенства и введите формулу, как показано на рисунке (можно выбрать имя столбца, затем нажать кнопку Вставить, или дважды щелкнуть имя столбца, чтобы вставить его в поле формулы). Нажимать Ok.

Рис. 45. Окно Настраиваемый столбец

Новый столбец Сумма добавляется в запрос данных (рис. 46).

Рис. 46. Настраиваемый столбец Сумма добавляется в запрос

Столбец индекса: в новый столбец вставляет счетчик для каждой строки. Это полезно, если вам нужно запомнить или сохранить исходный порядок сортировки данных (рис. 47).

Рис. 47. Столбец индекса

Трюки в Power Query

Импорт метаданных в Excel. Метаданные – информация о файле, такая, как имя, расширение, время создания, размер и др. Откройте новую книгу Excel. Перейдите на вкладку Данные. Кликните Получить данные –> Из файла –> Из папки (рис. 48).

Рис. 48. Получение метаданных файлов

Выберите папку (рис. 49). Нажимать Ok.

Рис. 49. Выбор папки для импорта метаданных

Power Query возвращает следующие данные:

Рис. 50. Метаданные

Нажмите кнопку Закрыть и загрузить. Данные отразятся в Excel в виде таблицы. Чтобы увидеть, как это работает в проводнике Windows перейдите к выбранной папке. Создайте новый файл (любого типа) и сохраните его в эту папку. Я поместил в ней файл с картинкой. Вернитесь в Excel. Кликните правой кнопкой мыши на таблице и выберите Обновить. Новый файл появится в таблице (рис. 51).

Рис. 51. После обновления таблица содержит новый файл

В Редакторе запросов есть столбец с именем Attributes (он есть на рис. 50, но не на рис. 51). В столбце есть иконка с двумя стрелками. Если вы нажмете на эту стрелку, вы получите всплывающее окно, где вы можете включить дополнительные метаданные обо всех файлах (рис. 52).

Рис. 52. Перечень всех доступных метаданных

Загрузка нескольких файлов одной командой. Воспользуемся папкой MonthlySales, в которой имеется два файла: JanSales.csv и FebSales.csv. Откройте новую книгу Excel. Перейдите на вкладку Данные. Кликните Получить данные –> Из файла –> Из папки. Выберите папку MonthlySales. Нажимать Ok. Пока мы в точности повторили первые шаги процедуры загрузки метаданных. Однако, обратите внимание на значок в первом столбце (рис. 53). Кликните на него, и начнется загрузка содержимого файлов.

Рис. 53. Пиктограмма загрузки содержимого файлов

Откроется окно Объединить файлы (рис. 54). Нажмите Ok. Данные из двух файлов объединены в одном запросе.

Рис. 54. Окно Объединить файлы

Можете удалить столбец Sourse.Name. Нажмите Закрыть и загрузить.

Рис. 55. Запрос, объединяющий все файлы в папке

Когда вы получите файл данных за следующий месяц, просто сохраните его в той же папке и обновите таблицу. Power Query снова прочитает содержимое папки, и новый месяц будет включен в таблицу Excel. Другими словами, при нажатии кнопки Обновить Power Query будет обрабатывать все файлы в папке.

Power Query: стероиды для MS Excel и Power BI

В данной статье я хочу рассказать о некоторых возможностях бесплатной и крайне полезной, но пока еще мало известной надстройки над MS Excel под названием Power Query.

Power Query позволяет забирать данные из самых разных источников (таких как csv, xls, json, текстовых файлов, папок с этими файлами, самых разных баз данных, различных api вроде Facebook opengraph, Google Analytics, Яндекс.Метрика, CallTouch и много чего еще), создавать повторяемые последовательности обработки этих данных и загружать их внутрь таблиц Excel или самого data model.

И вот под катом вы можете найти подробности всего этого великолепия возможностей.

Совместимость и технические подробности

Power Query доступен бесплатно для всех версий Windows Excel 2010, 2013 и встроен по умолчанию в Windows Excel 2016. Для пользователей MacOS X Power Query недоступен (впрочем, даже без этого маковский Excel отвратителен на ощупь и продвинутые пользователи, включая меня, чаще всего работают с нормальным Excel через Parallels или запуская его на удаленной виндовой машинке).

Также, Power Query встроен в новый продукт для бизнес аналитики — Power BI, а еще, ходят слухи, что Power Query будет появляться и в составе других продуктов от Microsoft. Т.е. Power Query ждет светлое будущее и самое время для адептов технологий Microsoft (и не только) заняться его освоением.

Как оно работает

После установки Power Query в интерфейсе Excel 2010–2013 появляется отдельная одноименная вкладка.

В новом Excel 2016 функционал Power Query доступен на вкладке Data (данные), в блоке “Get & Transform”.

Сначала, в интерфейсе Excel мы выбираем конкретный источник данных, откуда нам их нужно получить, и перед нами открывается окошко самого Power Query с предпросмотром первых строчек загруженных данных (область 1). В верхней части окошка располагается Ribbon с командами по обработке данных (область 2). И в правой части экрана (область 3) у нас расположена панель с последовательностью всех действий, которые применяются к данным.

Возможности Power Query

У Power Query очень много возможностей и я хочу остановиться на некоторых из числа моих любимых.

Как я уже писал выше, Power Query замечателен тем, что позволяет подключаться к самым разным источникам данных. Так он позволяет загружать данные из CSV, TXT, XML, json файлов. Притом процесс выбора опций загрузки тех-же CSV файлов гибче и удобнее, чем он реализован штатными средствами Excel: кодировка автоматически выбирается часто правильно и можно указать символ разделителя столбцов.

Объединение файлов лежащих в папке

Power Query умеет забирать данные из указанной папки и объединять их содержимое в единые таблицы. Это может быть полезно, например, если вам периодически приходят какие-то специализированные отчеты за отдельный промежуток времени, но данные для анализа нужны в общей таблице. Гифка

Текстовые функции

К столбцам из текста в Power Query по нажатию на кнопки на Ribbon можно применять такие функции как:

  1. Разделить столбец по символу или по количеству символов. И в отличие от Excel можно задать максимальное количество столбцов, а также направление откуда нужно считать символы — слева, справа.
  2. Изменить регистр ячеек в столбце
  3. Подсчитать количество символов в ячейках столбца.

Числовые функции

К столбцам с числовыми значениями по нажатию на кнопки на Ribbon можно применять:

  1. Арифметические операции
  2. Возводить в степени, вычислять логарифмы, факториалы, корни
  3. Тригонометрические операции
  4. Округлять до заданных значений
  5. Определять четность и т.д.

Функции для работы с датами, временем и продолжительностью

К столбцам со значениями даты и времени по нажатию на кнопки на Ribbon можно применять:

  1. Автоматическое определение формата вписанной даты (в excel c этим большая боль)
  2. Извлекать в один клик номер месяца, дня недели, количество дней или часов в периоде и т.п.

Unpivot — Pivot

В интерфейсе Power Query есть функция “Unpivot”, которая в один клик позволяет привести данные с одной метрикой разложенные по столбцам по периодам к форме, которая будет удобна для использования в сводных таблицах (понимаю что трудно написал — смотрите пример). Также, есть функция с обратным действие Pivot. Гифка

Операция Merge — смерть ВПР

Функция ВПР (VLOOKUP) одна из наиболее используемых функций в MS Excel. Она позволяет подтягивать данные в одну таблицу из другой таблицы по единому ключу. И вот как раз для этой функции в Power Query есть гораздо более удобная альтернатива — операция Merge. При помощи этой операции соединение таблиц нескольких таблиц в одну по ключу (по простому или по составному ключу, когда соответствие нужно находить по нескольким столбцам) выполняется буквально в 7 кликов мыши без ввода с клавиатуры.

Операция Merge — это аналог join в sql, и ее можно настроить чтобы join был разных типов — Inner (default), Left Outer, Right Outer, Full Outer.

Upd.Мне тут подсказали, что Power Query не умеет делать Aproximate join, а впр умеет. Чистая правда, из коробки альтернатив нет. Гифка

Подключение к различным базам данных. Query Folding.

Power Query также замечателен тем, что умеет цепляться к самым разным базам данных — от MS SQL и MySQL до Postgres и HP Vertica. При этом, вам даже не нужно знать SQL или другой язык базы данных, т.к. предпросмотр данных отображается в интерфейсе Power Query и все те операции, которые выполняются в интерфейсе прозрачно транслируются в язык запросов к базе данных.

А еще в Power Query есть понятие Query Folding: если вы подключены к совместимой базе данных (на текущий момент это MS SQl), то тяжелые операции по обработке данных Power Query будет стараться выполнить на серверной стороне и забирать к себе лишь обработанные данные. Эта возможность радикально улучшает быстродействие многих обработок.

Язык программирования “М”

Надстройка Power Query — это интерпретатор нового, скриптового, специализированного для работы с данными, языка программирования М.

На каждое действие, которое мы выполняем с данными в графическом интерфейсе Power Query, в скрипт у нас пишется новая строчка кода. Отражая это, в панели с последовательностью действий (область 3), создается новый шаг с говорящим названием. Благодаря этому, используя панель с последовательностью действий, мы всегда можем посмотреть как выглядят у нас данные на каждом шаге обработки, можем добавить новые шаги, изменить настройки применяемой операции на конкретном шаге, поменять их порядок или удалить ненужные шаги. Гифка

Также, мы всегда можем посмотреть и отредактировать сам код написанного скрипта. И выглядеть будет он примерно так:

Язык M, к сожалению, не похож ни на язык формул в Excel, ни на MDX и, к счастью, не похож на Visual Basic. Однако, он очень прост в изучении и открывает огромные возможности по манипуляции данными, которые недоступны с использованием графического интерфейса.

Загрузка данных из Яндекс.Метрики, Google Analytics и прочих Api

Немного овладев языком “M” я смог написать программки в Power Query, которые умеют подключаться к API Яндекс.Метрики и Google Analytics и забирать оттуда данные с задаваемыми настройками. Программки PQYandexMetrika и PQGoogleAnalytics я выложил в опенсорс на гитхаб под лицензией GPL. Призываю пользоваться. И я буду очень рад, если эти программы будут дорабатываться энтузиастами.

Для Google Analytics подобного рода экспортеров в разных реализациях достаточно много, но вот для Яндекс.Метрики, насколько я знаю, мой экспортер был первым публично доступным, да еще и бесплатным 🙂

Power Query умеет формировать headers для post и get запросов и забирать данные из интернета. Благодаря этому, при должном уровне сноровки, Power Query можно подключить практически к любым API. В частности, я для своих исследований дергаю данные по телефонным звонкам клиентов из CallTouch API, из API сервиса по мониторингу активности за компьютером Rescuetime, занимаюсь парсингом нужных мне веб-страничек на предмет извлечения актуальной информации.

Еще раз про повторяемость и про варианты применения

Как я уже писал выше, скрипт Power Query представляет собой повторяемую последовательность манипуляций, применяемых к данным. Это значит, что однажды настроив нужную вам обработку вы сможете применить ее к новым файлам изменив всего один шаг в скрипте — указав путь к новому файлу. Благодаря этому можно избавиться от огромного количества рутины и освободить время для продуктивной работы — анализа данных.

Я занимаюсь веб-аналитикой и контекстной рекламой. И так уж получилось, что с момента, как я познакомился с Power Query в ее интерфейсах я провожу больше времени, чем в самом Excel. Мне так удобнее. Вместе с тем возросло и мое потребление другой замечательной надстройки в MS Excel — PowerPivot.

Вот часть задач, которые я делаю с использованием Power Query:

  1. разбираю семантику для Толстых проектов,
  2. Делаю частотные словари,
  3. Создаю веб-аналитические дашборды и отчеты для анализа конкретных срезов,
  4. Восстанавливаю достижение целей в системах веб-аналитики, если они не настроены на проекте,
  5. Сглаживаю прогноз вероятности методами Андрея Белоусова (+Байеса:),
  6. Делаю аудит контекстной рекламы на данных из K50 статистика,
  7. И много других разных ad-hoc analysis задач, которые нужно сделать лишь однажды

Вот bi систему, про которую я рассказывал на Yac/M 2015 (видео) я делал полнстью при помощи Power Query и загружал данные внутрь PowerPivot.

Пару слов про локализацию

На сайте Microsoft для пользователей из России по умолчанию скачивается Power Query с переведенным на русским язык интерфейсом. К счастью, локализаторы до перевода на русский языка программирования (как это сделано с языком формул в excel) не добрались, однако жизнь пользователям неоднозначными переводами сильно усложнили. И я призываю вас скачивать, устанавливать и пользоваться английской версией Power Query. Поверьте, она будет гораздо понятнее.

Начало работы в Power Query

Power Query — это инструмент для продвинутого бизнес-анализа, предназначенный для подключения к источникам данных и их преобразования.

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

Power Query в меню Excel

В зависимости от того, какая у вас версия Excel, вид надстройки Power Query может выглядеть по-разному. В Excel 2010 и 2013 надстройка появляется в виде отдельной вкладки «Power Query» (если у вас такой вкладки нет, прочитайте, как ее установить ).

В Excel после 2016 года Power Query уже встроен по умолчанию и находится в меню Данные → раздел Получить и преобразовать данные (в некоторых версиях Excel этот раздел называется Скачать & преобразовать).

Работа с данными в Power Query

Power Query умеет:

  • напрямую подключаться к данным в различных источниках;
  • очищать данные и выполнять преобразования;
  • подготовленные данные выгружать на лист, в сводную таблицу или добавлять в модель данных Excel.

Таким образом, Power Query – это полноценный ETL-инструмент (Extract, Transform, Load).

Подключение к данным в Power Query

В Power Query можно подключать данные из самых разных источников: таблицы в самом файле и других Excel-файлах, текстовые/csv файлы, папки, базы данных, источники в интернете, файлы xml и json, pdf-файлы, данные из канала OData и так далее. А также загрузить данные из Power BI и написать запрос с нуля – Пустой запрос.

Чтобы посмотреть, какие именно источники данных доступны в Excel, перейдите на вкладку Данные → Получить данные (или Создать запрос, если у вас не новая версия Excel).

Для примера добавим в Power Query данные из таблицы.

    Выделите любую таблицу на листе Excel и перейдите в меню:

— в Excel 2010 и 2013: вкладка Power Query → Из таблицы (или С листа).
— для Excel после 2016: меню Данные → Из таблицы (Из таблицы/диапазона).

В открывшемся окне поставьте галочку «Таблица с заголовками».

Таблица с данными при этом превратится в «умную» smart-таблицу.

  • Откроется окно редактора запросов, в котором будет наша таблица. Нажимаем кнопку в меню Главная → Закрыть и загрузить. Готово!

Чтобы открыть список запросов, нажмите в меню Данные → Запросы и подключения. В открывшейся вкладке «Запросы и подключения» отобразится список всех запросов, созданных в файле.

Редактор запросов Power Query

Разберем подробнее интерфейс редактора запросов Power Query.

Если окно редактора у вас закрыто, откройте его в меню Данные → Получить данные → Запустить редактор запросов. Или щелкните 2 раза мышкой по названию запроса на вкладке Запросы и подключения.

Итак, в редакторе Power Query есть:

  1. Лента редактора запросов для вкладок меню: Главная, Преобразование, Добавить столбец, Просмотр.
  2. Перечень созданных запросов, который можно свернуть / развернуть.
  3. Строка формул.
  4. Название самого запроса.
  5. Примененные шаги запроса: записанные шаги получения или преобразования данных. Их можно редактировать, выбирая в списке, изменять последовательность шагов, добавлять новые или удалять.
  6. Область предварительного просмотра, в которой выводится результат преобразования данных для каждого шага.
  7. Меню для данных, которое открывается при нажатии правой кнопкой мышки.
  8. При выборе правой кнопкой мыши названия шага появляется его контекстное меню.

Преобразование данных

Посмотрим на простом примере, как преобразовать данные в Power Query.

Допустим, у нас есть таблица с выручкой и расходами по городам за несколько лет. В таблице эти показатели разделены на две группы. Столбец с городами тоже имеет группировки (смотрите рисунок).

Если вы знакомы со сводными таблицами, то знаете, что построить сводную на основе таких данных не получится. Привести их в «нужный вид» можно в Power Query буквально за несколько щелчков мышкой:

  • выделите таблицу (можно выделить таблицу целиком или одну из ячеек);
  • выберите в меню Данные → Из таблицы (Из таблицы/диапазона);
  • в появившемся окне поставьте галочку рядом с «Таблица с заголовками» → ОК;
  • в открывшемся редакторе запросов выделите столбцы «показатель» и «город», нажав мышкой на названия столбцов с зажатым Ctrl;
  • в меню нажмите Преобразование → Заполнить → Вниз.
  • Готово! Пустые строки заполнены значениями из ячеек сверху.

При создании запроса Power Query сам автоматически записывает его шаги. Их можно увидеть в области справа Параметры запроса → Примененные шаги.

Шаги запроса можно редактировать, выбирая мышкой (таблица в области предварительного просмотра при этом тоже изменится). Ненужные шаги удаляются при нажатии на «крестик». Можно добавлять новые шаги в середину запроса или менять их местами, перемещая мышкой.

Обработка данных в Power Query выполняется последовательно, шаг за шагом, и каждое последующее действие использует результаты предыдущего. Поэтому при добавлении новых шагов или изменении их последовательности обязательно проверьте, все ли в порядке со следующими операциями. Проверить, все ли в порядке, можно, нажав на самый нижний шаг.

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


источники:

http://habr.com/ru/post/271019/

http://finalytics.pro/inform/begin-power-query/