Power query для excel описание

Термины «Power Query», «Power Pivot», «Power BI» и прочие «пауэры» все чаще всплывают в статьях и материалах о Microsoft Excel. По моему опыту, далеко не все ясно представляют себе что скрывается за этими понятиями, как они между собой взаимосвязаны и как могут помочь простому пользователю Excel.

Давайте проясним ситуацию.

Power Query

Еще в 2013 году специально созданная группа разработчиков внутри Microsoft выпустила для Excel бесплатную надстройку Power Query (другие названия — Data Explorer, Get&Transform), которая умеет массу полезных для повседневной работы вещей:

  • Загружать данные в Excel из почти 40 различных источников, среди которых базы данных (SQL, Oracle, Access, Teradata…), корпоративные ERP-системы (SAP, Microsoft Dynamics, 1C…), интернет-сервисы (Facebook, Google Analytics, почти любые сайты).
  • Собирать данные из файлов всех основных типов данных (XLSX, TXT, CSV, JSON, HTML, XML…), как поодиночке, так и сразу оптом — из всех файлов указанной папки. Из книг Excel можно автоматически загружать данные сразу со всех листов.
  • Зачищать полученные данные от «мусора»: лишних столбцов или строк, повторов, служебной информации в «шапке», лишних пробелов или непечатаемых символов и т.п.
  • Приводить данные в порядок: исправлять регистр, числа-как-текст, заполнять пробелы, добавлять правильную «шапку» таблицы, разбирать «слипшийся» текст на столбцы и склеивать обратно, делить дату на составляющие и т.д.
  • Всячески трансформировать таблицы, приводя их в желаемый вид (фильтровать, сортировать, менять порядок столбцов, транспонировать, добавлять итоги, разворачивать кросс-таблицы в плоские и сворачивать обратно).
  • Подставлять данные из одной таблицы в другую по совпадению одного или нескольких параметров, т.е. прекрасно заменяет функцию ВПР (VLOOKUP) и ее аналоги.

Power Query встречается в двух вариантах: как отдельная надстройка для Excel 2010-2013, которую можно скачать с официального сайта Microsoft и как часть Excel 2016. В первом случае после установки в Excel появляется отдельная вкладка:

Отдельная вкладка Power Query

В Excel 2016 весь функционал Power Query уже встроен по умолчанию и находится на вкладке Данные (Data) в виде группы Получить и преобразовать (Get & Transform):

excel-2016-15.png

Возможности этих вариантов совершенно идентичны.

Принципиальной особоенностью Power Query является то, что все действия по импорту и трансформации данных запоминаются в виде запроса — последовательности шагов на внутреннем языке программирования Power Query, который лаконично называется «М». Шаги можно всегда отредактировать и воспроизвести повторно любое количество раз (обновить запрос).

Основное окно Power Query обычно выглядит примерно так:

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

По моему мнению, это самая полезная для широкого круга пользователей надстройка из всех перечисленных в этой статье. Очень много задач, для которых раньше приходилось либо жутко извращаться с формулами, либо писать макросы — теперь легко и красиво делаются в Power Query. Да еще и с последующим автоматическим обновлением результатов. А учитывая бесплатность, по соотношению «цена-качество» Power Query просто вне конкуренции и абсолютный must have для любого средне-продвинутого пользователя Excel в наши дни.

Power Pivot

Power Pivot — это тоже надстройка для Microsoft Excel, но предназначенная немного для других задач. Если Power Query сосредоточена на импорте и обработке, то Power Pivot нужен, в основном, для сложного анализа больших объемов данных. В первом приближении, можно думать о Power Pivot как о прокачанных сводных таблицах.

Вкладка надстройки Power Pivot

Общие принципы работы в Power Pivot следующие:

  1. Сначала мы загружаем данные в Power Pivot — поддерживается 15 различных  источников: распространенные БД (SQL, Oracle, Access…), файлы Excel, текстовые файлы, веб-каналы данных. Кроме того, можно использовать Power Query как источник данных, что делает анализ почти всеядным.
  2. Затем между загруженными таблицами настраиваются связи или, как еще говорят, создается Модель Данных. Это позволит в будущем строить отчеты по любым полям из имеющихся таблиц так, будто это одна таблица. И никаких ВПР опять же.
  3. При необходимости, в Модель Данных добавляют дополнительные вычисления с помощью вычисляемых столбцов (аналог столбца с формулами в «умной таблице») и мер (аналог вычисляемого поля в сводной). Всё это пишется на специальном внутреннем языке Power Pivot, который называется DAX (Data Analysis eXpressions).
  4. На листе Excel по Модели Данных строятся интересующие нас отчеты в виде сводных таблиц и диаграмм.

Главное окно Power Pivot выглядит примерно так:

Главное окно Power Pivot

А так выглядит Модель Данных, т.е. все загруженные таблицы с созданными связями:

Модель Данных Power Pivot

У Power Pivot есть ряд особенностей, делающих её уникальным инструментом для некоторых задач:

  • В Power Pivot нет предела по количеству строк (как в Excel). Можно грузить таблицы любого размера и спокойно работать с ними.
  • Power Pivot очень хорошо умеет сжимать данные при загрузке их в Модель. 50 Мб исходный текстовый файл может легко превратиться в 3-5 Мб после загрузки.
  • Поскольку «под капотом» у Power Pivot, по сути, полноценный движок базы данных, то с большими объемами информации он справляется очень быстро. Нужно проанализировать 10-15 млн. записей и построить сводную? И все это на стареньком ноутбуке? Без проблем!

К сожалению, пока что Power Pivot входит не во все версии Excel. Если у вас Excel 2010, то скачать её можно бесплатно с сайта Microsoft. А вот если у вас Excel 2013-2016, то всё зависит от вашей лицензии, т.к. в некоторых вариантах она включена (Office Pro Plus, например), а в некоторых нет (Office 365 Home, Office 365 Personal и т.д.) Подробнее об этом можно почитать тут.

Power Maps

Эта надстройка впервые появилась в 2013 году и первоначально называлась GeoFlow. Она предназначена для визуализации гео-данных, т.е. числовой информации на географических картах. Исходные данные для отображения берутся все из той же Модели Данных Power Pivot (см. предыдущий пункт).

Окно Power Map

Демо-версию Power Map (почти не отличающуюся от полной по возможностям, кстати) можно совершенно бесплатно загрузить опять же с сайта Microsoft. Полная же версия включена в некоторые пакеты Microsoft Office 2013-2016 вместе с Power Pivot — в виде кнопки 3D-карта на вкладке Вставка (Insert — 3D-map):

Кнопка запуска Power Map

Ключевые особенности Power Map:

  • Карты могут быть как плоскими, так и объемными (земной шар).
  • Можно использовать несколько разных типов визуализации (гистограммы, пузырьковые диаграммы, тепловые карты, заливку областями).
  • Можно добавлять измерение времени, т.е. анимировать процесс и смотреть на него в развитии.
  • Карты подгружаются из сервиса Bing Maps, т.е. для просмотра нужен весьма шустрый доступ в интернет. Иногда возникают сложности с правильным распознаванием адресов, т.к. названия в данных не всегда совпадают с Bing Maps.
  • В полной (не демо) версии Power Map можно использовать собственные загружаемые карты, например визуализировать посетителей торгового центра или цены на квартиры в жилом доме прямо на строительном плане.
  • На основе созданных гео-визуализаций можно прямо в Power Map создавать видеоролики (пример), чтобы поделиться ими потом с теми, у кого надстройка не установлена или включить в презентацию Power Point.

Power View

Эта надстройка появилась впервые в составе Excel 2013 и предназначена для «оживления» ваших данных — построения интерактивных графиков, диаграмм, карт и таблиц. Иногда для этого используют термины дашборд (dashboard) или панель показателей (scorecard). Суть в том, что вы можете вставить в ваш файл Excel специальный лист без ячеек — слайд Power View, куда добавить текст, картинки и массу различного типа визуализаций по вашим данным из Модели Данных Power Pivot.

Выглядеть это будет примерно так:

powerview.gif

Нюансы тут такие:

  • Исходные данные берутся всё оттуда же — из Модели Данных Power Pivot.
  • Для работы с Power View необходимо установить на вашем компьютере Silverlight — майкрософтовский аналог Flash (бесплатный).

На сайте Microsoft, кстати, есть весьма приличный обучающий курс по Power View на русском языке.

Power BI

В отличие от предыдущих, Power BI — это не надстройка для Excel, а отдельный продукт, представляющий собой целый комплекс средств для бизнес- анализа и визуализации. Он состоит из трех ключевых элементов:

1. Power BI Desktop — программа для анализа и визуализации данных, включающая в себя, помимо прочего, весь функционал надстроек Power Query и Power Pivot + улучшенные механизмы визуализации из Power View и Power Map. Скачать и установить её можно совершенно бесплатно с сайта Microsoft.

Сайт Power BI Service

В Power BI Desktop можно:

  • Загружать данные из более чем 70 различных источников (как в Power Query + дополнительные коннекторы).
  • Связывать таблицы в модель (как в Power Pivot)
  • Добавлять к данным дополнительные вычисления с помощью мер и вычисляемых столбцов на DAX (как в Power Pivot)
  • Создавать на основе данных красивейшие интерактивные отчеты с разного типа визуализациями (очень похоже на Power View, но еще лучше и мощнее).
  • Публиковать созданные отчеты на сайте Power BI Service (см. следующий пункт) и делиться ими с коллегами. Причем есть возможность давать разные права (чтение, редактирование) разным людям.

2. Онлайн-сервис Power BI — упрощенно говоря, это сайт, где у вас и у каждого пользователя в вашей компании будет своя «песочница» (workspace) куда можно загружать созданные в Power BI Desktop отчеты. Помимо просмотра, позволяет их даже редактировать, воспроизводя онлайн почти весь функционал Power BI Desktop. Также сюда можно заимствовать отдельные визуализации из чужих отчетов, собирая из них свои авторские дашборды.

Выглядит это примерно так:

Сайт Power BI Service

3. Power BI Mobile — приложение для iOS / Android / Windows для подключения к Power BI Service и удобного просмотра (не редактирования) созданных отчетов и дашбордов прямо на экране телефона или планшета. Скачать его (совершенно бесплатно) можно тут.

На iPhone, например, созданный выше отчет выглядит так:

Отчет в Power BI Mobile

Причем всё это с сохранением интерактивностии и анимации + заточенность под тач и рисование по экрану пером. Очень удобно. Таким образом, бизнес-аналитика становится доступной всем ключевым лицам компании в любой момент и в любом месте — нужен только доступ в интернет.

Тарифные планы Power BI. Power BI Desktop и Mobile бесплатны изначально, большинство функций Power BI Service — тоже. Так что для персонального использования или применения в пределах небольшой компании за всё вышеперечисленное не нужно платить ни копейки и можно смело оставаться на плане Free. Если вы хотите делиться отчетами с коллегами и администрировать их права доступа, то придется перейти на Pro (10$ в месяц за пользователя). Есть еще Premium — для больших компаний (>500 пользователей), которым требуются для данных отдельные хранилища и серверные мощности.

Ссылки по теме

  • Проектная диаграмма Ганта в Excel с помощью Power Query
  • Как создать в Excel базу данных с помощью Power Pivot
  • Визуализация движения по маршруту на карте в Power Map

Файлы к уроку:

  • Для спонсоров Boosty
  • Для спонсоров VK

Ссылки:

  • Страница курса
  • Плейлист YouTube
  • Плейлист ВК

Основные возможности

Основные возможности Power Query:

  • Импорт данных
    • Excel
    • CSV/TXT
    • Интернет
    • Базы данных
  • Очистка
    • Фильтрация строк/столбцов
    • Объединить/разделить столбец
    • Извлечь часть строки/даты
    • Добавление столбцов
  • Объединение таблиц
    • По вертикали
    • По горизонтали
  • Изменить форму
    • Пивот
    • Анпивот
    • Транспонирование
  • Вычисления
    • Агрегирование
    • Вычисляемые столбцы
  • Прочее
    • Генерирование серий
    • Создание пользовательских функций

Импорт данных

Импорт из Excel

Для подключение к файлу Excel мы в ленте Excel можем перейти на вкладку Данные — Получить данные — Excel.

Пример кода подключения к Excel:

let
   source = Excel.Workbook(
      File.Contents(
         filepath
      ),
      null,
      true
   ),
   get_table = source{[Item = "Таблица", Kind = "Table"]}[Data],
   set_types = Table.TransformColumnTypes(
      get_table,
      {
         {"Дата", type date},
         {"Кол-во", Int64.Type},
         {"Себестоимость", type number},
         {"Сумма", type number},
         {"Прибыль", type number}
      }
   )
in
   set_types
Импорт из CSV

Подключение к CSV из пользовательского интерфейса Excel или Power Query выполняется абсолютно так же, как и подключение к Excel.

Пример кода для подключения к CSV:

let
   source = Csv.Document(
      File.Contents(
         filepath
      ),
      [Delimiter = ";", Columns = 12, Encoding = 65001, QuoteStyle = QuoteStyle.None]
   ),
   headers = Table.PromoteHeaders(source, [PromoteAllScalars = true]),
   set_types_1 = Table.TransformColumnTypes(
      headers,
      {{"Сумма", type number}},
      "en-001"
   ),
   set_types_2 = Table.TransformColumnTypes(
      set_types_1,
      {{"Дата доставки", type date}, {"Дата и время", type datetime}}
   )
in
   set_types_2
Импорт из Интернета

Чтобы импортировать таблицу из интернета нужно перейти на вкладку Данные — Получить данные — Из интернета — Вставить url.

Пример кода для получения таблицы с web-страницы:

let
   source = Web.Page(Web.Contents("https://bigmacindex.ru/2020-07")),
   get_table = source{0}[Data],
   set_types_1 = Table.TransformColumnTypes(
      get_table,
      {{"Местная валюта", type number}},
      "en-001"
   ),
   set_types_2 = Table.TransformColumnTypes(set_types_1, {{"Рубли ↓↑", Int64.Type}})
in
   set_types_2

Очистка

В этой части урока мы сделали базовую очистку данных. Код:

let
   path = Excel.CurrentWorkbook(){[Name = "Путь"]}[Content]{0}[Column1],
   source = Csv.Document(
      File.Contents(path),
      [Delimiter = "	", Columns = 24, Encoding = 65001, QuoteStyle = QuoteStyle.None]
   ),
   rows_skip_1 = Table.Skip(source, 4),
   rows_skip_2 = Table.RemoveLastN(rows_skip_1, 1),
   headers = Table.PromoteHeaders(rows_skip_2, [PromoteAllScalars = true]),
   select_rows = Table.SelectRows(headers, each ([Вид операции] = "Продажа")),
   select_cols = Table.SelectColumns(
      select_rows,
      {
         "Дата",
         "Документ",
         "PosID",
         "Вид операции",
         "Код",
         "Количество",
         "Сумма",
         "Себестоимость сумма",
         "Премия сумма"
      }
   ),
   split_cols = Table.SplitColumn(
      select_cols,
      "Документ",
      Splitter.SplitTextByEachDelimiter({" от "}, QuoteStyle.Csv, false),
      {"Чек", "Дата и время"}
   ),
   transform_cols = Table.TransformColumns(
      split_cols,
      {{"Дата и время", each Text.AfterDelimiter(_, " "), type text}}
   ),
   transform_types = Table.TransformColumnTypes(
      transform_cols,
      {
         {"Дата", type date},
         {"PosID", Int64.Type},
         {"Количество", Int64.Type},
         {"Сумма", type number},
         {"Себестоимость сумма", type number},
         {"Премия сумма", type number},
         {"Дата и время", type time}
      }
   ),
   add_col = Table.AddColumn(
      transform_types,
      "Прибыль",
      each List.Sum({[Сумма], - [Себестоимость сумма]}),
      Number.Type
   )
in
   add_col

Изменение формы

В качестве примера изменения формы мы преобразуем скученные в одном столбце данные в правильную таблицу.

Решение

Сначала нужно найти закономерность в исходных данных. Мы можем обнаружить, что каждая строка содержит 9 значений.

Ключом к решению этой задачи является добавление столбца индекса. Если мы вычислим остаток от деления номера строки на 9, то сможем обнаружить начало каждой строки.

Код
let
   source = Excel.CurrentWorkbook(){[Name = "Сделки"]}[Content],
   index_col = Table.AddIndexColumn(source, "Индекс", 0, 1),
   mod_col = Table.AddColumn(
      index_col,
      "Остаток от деления",
      each Number.Mod([Индекс], 9),
      type number
   ),
   pivot = Table.Pivot(
      Table.TransformColumnTypes(
         mod_col,
         {{"Остаток от деления", type text}},
         "en-US"
      ),
      List.Distinct(
         Table.TransformColumnTypes(
            mod_col,
            {{"Остаток от деления", type text}},
            "en-US"
         )[#"Остаток от деления"]
      ),
      "Остаток от деления",
      "Сделки"
   ),
   fillup = Table.FillUp(pivot, {"1", "2", "3", "4", "5"}),
   filter_table = Table.SelectRows(fillup, each ([0] <> null)),
   select_cols = Table.SelectColumns(filter_table, {"0", "1", "2", "3", "4", "5"}),
   rename_cols = Table.RenameColumns(
      select_cols,
      {
         {"0", "Дата"},
         {"1", "Тикер"},
         {"2", "Сумма"},
         {"3", "Количество"},
         {"4", "Цена"},
         {"5", "Комиссия"}
      }
   ),
   set_types = Table.TransformColumnTypes(
      rename_cols,
      {
         {"Дата", type date},
         {"Тикер", type text},
         {"Сумма", type number},
         {"Количество", type number},
         {"Цена", type number},
         {"Комиссия", type number}
      }
   )
in
   set_types

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

Существует способа объединения таблиц:

  • По горизонтали
  • По вертикали

Объединение по горизонтали — это то же самое, что операция JOIN языка SQL.

Объединение по вертикали — это то же самое, что операция UNION ALL из SQL.

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

Код
let
   source = Table.Combine({ККМтовар1, ККМтовар2}),
   join = Table.NestedJoin(
      source,
      {"Код"},
      СправочникТоваров,
      {"Код"},
      "СправочникТоваров",
      JoinKind.LeftOuter
   ),
   expand = Table.ExpandTableColumn(
      join,
      "СправочникТоваров",
      {"Номенклатура1", "Номенклатура2", "Поставщик", "Бренд"},
      {"Номенклатура1", "Номенклатура2", "Поставщик", "Бренд"}
   ),
   set_types = Table.TransformColumnTypes(
      expand,
      {{"Дата", type date}, {"Месяц", type date}, {"POSID", Int64.Type}}
   )
in
   set_types

Вычисления

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

В этом примере мы выполним оба вида вычислений.

Код
let
   source = Excel.CurrentWorkbook(){[Name = "ККМтовар"]}[Content],
   set_types = Table.TransformColumnTypes(source, {{"Дата", type date}}),
   group_by = Table.Group(
      set_types,
      {"Категория"},
      {
         {"Сумма", each List.Sum([Сумма продаж]), type number},
         {"Прибыль", each List.Sum([#"Валовая прибыль, руб."]), type number}
      }
   ),
   sort = Table.Sort(group_by, {{"Категория", Order.Ascending}}),
   add_column = Table.AddColumn(
      sort,
      "Прибыльность",
      each [Прибыль] / [Сумма],
      Percentage.Type
   )
in
   add_column

Прочее

Среди прочих функций выделим возможности генерации серий и создания пользовательских функций.

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

Сначала нам понадобится создать пользовательскую функцию для обработки каждой ссылки.

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

Код

Пользовательская функция:

(url) =>
   let
      source      = Web.Page(Web.Contents(url)),
      select_rows = Table.SelectRows(source, each ([ClassName] = "result_table")),
      Data        = select_rows{0}[Data]
   in
      Data

Генерируем серию и обрабатываем каждую ссылку:

let
   url_part = "https://www.calc.ru/kotirovka-dollar-ssha.html?date=",
   months = {
      "-01",
      "-02",
      "-03",
      "-04",
      "-05",
      "-06",
      "-07",
      "-08",
      "-09",
      "-10",
      "-11",
      "-12"
   },
   list_generate = List.Generate(
      () => [x = 1992],
      each [x] <= 2020,
      each [x = [x] + 1],
      each [year = [x], months = months, url_part = url_part]
   ),
   to_table = Table.FromList(
      list_generate,
      Splitter.SplitByNothing(),
      null,
      null,
      ExtraValues.Error
   ),
   expand_col = Table.ExpandRecordColumn(
      to_table,
      "Column1",
      {"year", "months", "url_part"},
      {"year", "months", "url_part"}
   ),
   expand_col_2 = Table.ExpandListColumn(expand_col, "months"),
   combine_cols = Table.CombineColumns(
      Table.TransformColumnTypes(expand_col_2, {{"year", type text}}, "ru-RU"),
      {"url_part", "year", "months"},
      Combiner.CombineTextByDelimiter("", QuoteStyle.None),
      "url"
   ),
   add_column = Table.AddColumn(
      combine_cols,
      "Пользовательский",
      each fn_get_usdrub([url])
   ),
   expand_col_3 = Table.ExpandTableColumn(
      add_column,
      "Пользовательский",
      {"Дата", "Курс"},
      {"Дата", "Курс"}
   ),
   select_rows = Table.SelectRows(expand_col_3, each Text.Length([Дата]) <> 4),
   set_types = Table.TransformColumnTypes(select_rows, {{"Дата", type date}}),
   set_types_locale = Table.TransformColumnTypes(
      set_types,
      {{"Курс", type number}},
      "en-001"
   ),
   replace_val = Table.ReplaceValue(
      set_types_locale,
      each [Курс],
      each if [Дата] < Date.From("30.12.1997") then [Курс] / 1000 else [Курс],
      Replacer.ReplaceValue,
      {"Курс"}
   )
in
   replace_val

Примененные функции

  • Combiner.CombineTextByDelimiter
  • Csv.Document
  • Date.From
  • Excel.CurrentWorkbook
  • Excel.Workbook
  • ExtraValues.Error
  • File.Contents
  • JoinKind.LeftOuter
  • List.Distinct
  • List.Generate
  • List.Sum
  • Number.Mod
  • Number.Type
  • Percentage.Type
  • QuoteStyle.Csv
  • QuoteStyle.None
  • Replacer.ReplaceValue
  • Splitter.SplitByNothing
  • Splitter.SplitTextByEachDelimiter
  • Table.AddColumn
  • Table.AddIndexColumn
  • Table.Combine
  • Table.CombineColumns
  • Table.ExpandListColumn
  • Table.ExpandRecordColumn
  • Table.FillUp
  • Table.FromList
  • Table.Group
  • Table.NestedJoin
  • Table.Pivot
  • Table.PromoteHeaders
  • Table.RemoveLastN
  • Table.RenameColumns
  • Table.ReplaceValue
  • Table.SelectColumns
  • Table.SelectRows
  • Table.Skip
  • Table.Sort
  • Table.SplitColumn
  • Table.TransformColumns
  • Table.TransformColumnTypes
  • Text.AfterDelimiter
  • Web.Contents
  • Web.Page

Этот урок входит в Базовый курс Power Query

Номер урока Урок Описание
1 Зачем нужен Power Query. Обзор возможностей Этот урок сам по себе является мини-курсом. Здесь вы узнаете для каких видов операций с данными создан Power Query.
2 Подключение Excel Подключаемся к файлам Excel. Импортируем данные из таблиц, именных диапазонов, динамических именных диапазонов.
3 Подключение CSV/TXT, таблиц, диапазонов Подключаемся к к файлам CSV/TXT, Excel.
4 Объединить таблицы по вертикали Учимся объединять две таблицы по вертикали — combine.
5 Объединить по вертикали все таблицы одной книги друг за другом Как объединить по вертикали все таблицы одной книги, находящиеся на разных листах Excel.
6 Объединить по вертикали все файлы в папке Объединяем по вертикали таблицы, которые находятся в разных файлах в одной папке.
7 Объединение таблиц по горизонтали Учимся объединять таблицы по горизонтали — JOIN, merge.
8 Объединить таблицы с агрегированием Объединить таблицы по горизонтали и сразу выполнить группировку с агрегированием — JOIN + GROUP BY.
9 Анпивот (Unpivot) Изучаем операцию Анпивот — из сводной таблицы делаем таблицу с данными.
10 Многоуровневый анпивот (Анпивот с подкатегориями) Более сложный вариант Анпивота — в строках находится несколько измерений.
11 Скученные данные Данные собраны в одном столбце, нужно правильно его разбить на несколько.
12 Скученные данные 2 Разбираем еще один пример скученных данных.
13 Ссылка на другую строку Как сослаться на другую строку.
14 Ссылка на другую строку 2 Как сослаться на другую строку, используя объединение по горизонтали.
15 Виды объединения таблиц по горизонтали Изучаем виды объединения таблиц по горизонтали — LEFT JOIN, FULL JOIN, INNER JOIN, CROSS JOIN.
16 Виды объединения таблиц по горизонтали 2 Изучаем анти-соединение и соединение таблицы с ней же самой — ANTI JOIN, SELF JOIN.
17 Группировка Изучаем операцию группировки с агрегированием — GROUP BY.
18 Консолидация множества таблиц пользовательской функцией Объединяем по вертикали множество таблиц с предварительной обработкой при помощи пользовательской функции.
19 Деление на справочник и факт Разделим один датасет на два датасета: справочник и факт.
20 Создание параметра Мы можем ввести значение в какую-то ячейку Excel, а потом передать это значение в формулу Power Query.
21 Таблица параметров Создадим целую таблицу параметров и будем их использовать в запросах Power Query.
22 Объединение таблиц по вертикали, когда не совпадают заголовки столбцов Как объединить две таблицы по вертикали, если названия столбцов не совпадают.
23 Поиск ключевых слов Научимся искать ключевые слова в текстовом поле.
24 Поиск ключевых слов 2 Будем искать ключевые поля в текстовом поле и присваивать этому значению какую-то категорию.



Что это?
Power Query – это бесплатная надстройка для продуктов «Майкрософт», которая значительно облегчает работу с данными: сбор, подготовку, преобразование. Ее не нужно скачивать и как-то специально настраивать.



Как использовать?
Интерфейс PQ интуитивно понятен, разобраться в нём не составит труда. Чтобы понять, на что способна эта надстройка, и получить базовые навыки работы в ней, читайте наш материал.

В статье рассказывается:

  1. Возможности Power Query
  2. Подключение к данным в Power Query
  3. Предварительная настройка Power Query
  4. Редактор запросов Power Query
  5. Преобразование данных в Power Query
  6. Строка формул и расширенный редактор
  7. Типы данных Power Query
  8. Импорт данных из Power Query
  9. Использование Power Query в продуктах и службах «Майкрософт»
  10. Пройди тест и узнай, какая сфера тебе подходит:
    айти, дизайн или маркетинг.

    Бесплатно от Geekbrains

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

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

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

Между тем еще в 2013 году в Microsoft была создана специальная группа разработчиков с целью выпуска бесплатной надстройки для Excel. Разработка получила несколько названий: Power Query, Data Explorer, Get&Transform. Данная надстройка служит для выполнения множества повседневных задач:

  • Загрузка данных в таблицу Excel

Экспортировать данные можно из почти 40 сторонних форматов: SQL, Oracle, MS Access, Teradata, целый ряд корпоративных систем ERP (SAP, Microsoft Dynamics, 1C и др.), а также источники из интернета (почти все сайты, сервисы Facebook и Google Analytics).

  • Сбор информации из файлов всех основных типов данных

Среди поддерживаемых типов — XLSX, TXT, CSV, JSON, HTML, XML. При этом возможно групповое извлечение данных сразу из нескольких файлов, находящихся в одной папке. Доступна автоматическая загрузка информации из всех листов Excel.

Скачать файл

  • Очищение полученных данных от лишних элементов

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

  • Приведение данных к нужному виду

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

  • Приведение таблицы к нужному виду

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

  • Подстановка значений из одной таблицы в другую

Эта операция выполняется по совпадению одного или нескольких параметров. Таким образом, она является полной заменой встроенной в Excel функции ВПР (VLOOKUP) и ее аналогов.

Надстройка представлена в двух вариантах: как отдельный модуль, доступный для скачивания с официального сайта Microsoft (для Excel 2010-13), и как сервисная функция в составе редактора (для Excel 2016). В первом варианте установка PQ добавляет в таблицу новую вкладку. Во втором же случае весь функционал надстройки уже имеется в табличном редакторе по умолчанию — он доступен как группа Get & Transform (Получить и преобразовать) во вкладке Data (Данные).

Оба варианта имеют абсолютно одинаковые возможности.

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

Многие пользователи считают эту надстройку самой полезной в Excel. С ее помощью значительно облегчается выполнение многих рутинных задач. В прежние времена для автоматизации действий писались сложные макросы, теперь же это легко выполняется в PQ. К тому же этот инструмент абсолютно бесплатен, что делает его лидером среди возможных конкурентов. Сегодня он должен иметься в арсенале каждого пользователя Excel, обладающего навыками работы выше среднего.

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

Как упоминалось ранее, подключаться могут данные из большого количества различных источников. Это и другие Excel-таблицы, и базы данных популярных форматов, и данные из OData, и даже документы PDF. Также доступна загрузка информации из Power BI с последующим написанием запроса с нуля.

Как получить полный список источников, с которыми может работать Power Query? Excel позволяет увидеть в разделе «Получить данные» («Создать запрос»), находящемся во вкладке «Данные».

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

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

Разберем этот процесс на примере переноса значений из обычной таблицы.

Сперва необходимо выделить таблицу и перейти в меню «Из таблицы». В разных версиях редактора это делается по-разному:

  • Excel 2010-13 — через вкладку «Power Query».
  • Excel 2016 и выше — через меню Данные.

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

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

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

После этого произойдет преобразование обычной таблицы в «умную». Останется перейти во вкладку «Главная» и нажать «Закрыть и загрузить».

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

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

Далее для данного файла полезно посмотреть запросы Power Query. Списки их доступны во вкладке «Данные» в разделе «Запросы и подключения».

Предварительная настройка Power Query

Редактор запросов в Excel открывается следующим образом:

  • Вкладка «Данные» — раздел «Получить и преобразовать данные» — пункт «Получить данные» — «Запустить редактор запросов»

pdf иконка

Топ-30 самых востребованных и высокооплачиваемых профессий 2023

Поможет разобраться в актуальной ситуации на рынке труда

doc иконка

Подборка 50+ ресурсов об IT-сфере

Только лучшие телеграм-каналы, каналы Youtube, подкасты, форумы и многое другое для того, чтобы узнавать новое про IT

pdf иконка

ТОП 50+ сервисов и приложений от Geekbrains

Безопасные и надежные программы для работы в наши дни

Уже скачали 20401 pdf иконка

Далее в открывшемся окне выполняются следующие действия: «Файл» — «Параметры и настройки» — «Параметры запроса» — «Редактор Power Query». Здесь напротив пункта «Отобразить редактор запросов» должна быть поставлена галочка.

Теперь необходимо перейти в пункт «Конфиденциальность» и включить опцию «Всегда игнорировать уровни конфиденциальности». После нажатия на кнопку ОК нужно перезапустить редактор.

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

Открыть редактор также можно путем двойного клика по имени запроса на вкладке «Запросы и подключения». Рассмотрим интерфейс более подробно.

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

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

Редактор запросов состоит из следующих функциональных блоков:

  • Лента для вкладок «Главная», «Преобразование», «Добавить столбец» и «Просмотр».
  • Список созданных запросов (может быть свернут).
  • Строка для ввода формул.
  • Имя открытого запроса.
  • История выполненных операций над запросом и данными (доступны редактирование шагов, изменение их последовательности выполнения, добавление новых или удаление существующих шагов).

    Анализ данных в Еxcel: активация функций, возможности ПО

    Читайте также

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

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

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

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

Только до 17.04

Скачай подборку тестов, чтобы определить свои самые конкурентные скиллы

Список документов:

Тест на определение компетенций

Чек-лист «Как избежать обмана при трудоустройстве»

Инструкция по выходу из выгорания

Чтобы получить файл, укажите e-mail:

Подтвердите, что вы не робот,
указав номер телефона:


Уже скачали 7503

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

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

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

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

Все действия, выполняемые с использованием надстройки, автоматически фиксируются. Они отображены в правой части рабочего пространства («Параметры запроса» — «Примененные шаги»).

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

Все операции с данными PQ выполняет пошагово. То есть, каждое следующее действие опирается на результаты предыдущего. Это нужно учитывать, добавляя новые шаги или изменяя последовательность их выполнения. То есть, следует всегда проверять корректность всех следующих шагов путем клика по самому нижнему.

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

Строка формул и расширенный редактор

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

Язык преобразования данных M обрабатывает каждое событие, происходящее внутри запроса. Однако для использования расширенного функционала PQ лучше использовать соответственно расширенный редактор.

Он предоставляет полный доступ к скрипту запроса для последующей модификации. Другими словами, если функции пользовательского интерфейса не обеспечивают требуемую точность, следует воспользоваться расширенным редактором и инструментами языка M для гибкой настройки функций и преобразований.

При этом глубоко разбираться в коде необязательно. Большая часть операций выполняется мышью по пунктам меню.

Для ввода формул используется соответствующая строка, которая по умолчанию скрыта. Для ее включения необходимо перейти во вкладку «Просмотр» и активировать пункт «Строка формул».

Строка формул и расширенный редактор

Строка формул и расширенный редактор

Ознакомиться с доступными формулами можно в этом же блоке, нажав на кнопку «Расширенный редактор». Откроется окно, в котором отобразится полный текст запроса.

Типы данных Power Query

Типы данных — это неотъемлемая составляющая любого запроса PQ. Поэтому их обязательно нужно определять. Как правило, типы данных задаются после всех выполненных преобразований. Делается это одним из трех способов:

  • через вкладку «Главная», далее «Тип данных» («Преобразование»), далее «Определить тип данных»;
  • через клик указателем мыши по значку типа данных в названии столбца;
  • через вкладку «Преобразование», далее «Дата», далее «Выполнить анализ».

Какие возможности Еxcel вы еще не используете

Читайте также

Проверку правильности задания типов данных нужно проводить перед каждым сохранением запроса. При этом рекомендуется вручную удалять автоматически добавляемый шаг «Измененный тип».

Импорт данных из Power Query

Что делать с данными после преобразования в Power Query? Как добавить их в другие программы? Разберем несколько доступных вариантов импорта данных.

Для начала следует определить подходящие способы в процессе сохранения запроса («Главная» — «Закрыть и загрузить в…»). В сохраненном запросе параметры импорта задаются на вкладке «Запросы и подключения» путем клика правой клавишей мыши по названию запроса и выбора «Загрузить в…».

В редакторе Excel предлагается импортировать преобразованные данные одним из нескольких способов:

  • Выгрузка на лист

Сперва задаем способ представления данных, затем переходим во вкладку «Таблица», далее вставляем данные на лист. При этом автоматически создается смарт-таблица.

  • Сводная таблица (диаграмма)

Здесь после определения способа представления нужно перейти в «Отчет сводной таблицы» («Сводная таблица»). Импорт данных будет выполнен в соответствующем виде.

  • Только подключение

Для сохранения запроса следует выбрать пункт «Только создать подключение».

  • Добавление данных в модель данных

Активация пункта «Добавить эти данные в модель данных» приводит к добавлению выбранных данных в модель Power Pivot.

Использование Power Query в продуктах и службах «Майкрософт»

Различные продукты от Microsoft могут так или иначе поддерживать Power Query. Таблица, приведенная ниже, демонстрирует наличие либо отсутствие этой настройки в конкретном ПО.

Продукт M engine1 Power Query
Desktop2
Power Query
Online3
Потоки данных 4
Excel для Windows + +
Excel для Mac +
Power BI + + + +
Power Apps + + +
Power Automate + +
Сервер отчетности Power BI + +
Облачная платформа Azure + + +
Сервисы интеграции SQL Server +
Сервисы аналитики SQL Server + +
Dynamics 365 Customer Insights + + +
Mengine Используется язык M для базового механизма выполнения запросов.
Power Query Desktop Интерфейс PQ используется в классических приложениях.
Power Query Online Интерфейс PQ используется в веб-приложениях.
Dataflows PQ представлен в качестве облачного сервиса, не зависящего от конкретного продукта. Результаты преобразований данных используются другими приложениями.

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

Нужно импортировать или вставить данные в Excel? Очистить данные и поддерживать их в актуальном состоянии? Power Query поможет решить эти задачи. В этом руководстве можно получить основную информацию. Обратите внимание, что это руководство относится к версиям Excel 2016, Excel 2019 и Excel для Office 365 в Windows.

Excel

Скачать

Поделиться

Поделиться через Facebook

Поделиться через LinkedIn

Отправить по электронной почте

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

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

надстройка power query

Power Query в меню Excel

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

pp3

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

Power Query в Excel 2019

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

Power Query умеет:

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

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

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

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

Загрузка данных в Power Query

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

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

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

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

Получить данные Power Query

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

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

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

Power Quey пример

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

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

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

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

Интерфейс Power Query

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

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

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

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

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

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

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

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

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

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

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

Строка формул и расширенный редактор

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

Формулы Power Query выводятся в строке формул. По умолчанию эта строка скрыта, ее включают на вкладке Просмотр → Строка формул.

Строка формул Power Query

Чтобы посмотреть все формулы, здесь же на вкладке Просмотр нажмите на кнопку Расширенный редактор. В открывшемся окне появится полный текст запроса.

Расширенный редактор Power Query

Типы данных Power Query

Типы данных Power QueryОпределение типов данных – важная часть каждого запроса Power Query. Обычно типы данных задают в конце запроса после всех преобразований:

  • в меню Главная → Тип данных или Преобразование → Определить тип данных;
  • нажать мышкой по значку типа данных в названии столбца;
  • определить тип даты на вкладке Преобразование → Дата → Выполнить анализ.

Перед сохранением запроса проверьте, все ли типы данных заданы правильно. Это сэкономит время на поиск ошибок. А вот шаг «Измененный тип», который автоматически проставляется в середине запроса, лучше удалить.

Импорт данных из Power Query

Итак, данные преобразованы. Что делать с ними дальше? В Power Query доступно несколько вариантов импорта данных.

Способы импорта можно задать при сохранении запроса Главная → Закрыть и загрузить в…

Импорт

… А если запрос уже сохранен – в списке на вкладке Запросы и подключения. Щелкните по названию запроса правой кнопкой мышки и выберите в меню Загрузить в

Excel предлагает пользователям на выбор несколько вариантов импорта данных (вид окна импорта может отличаться в зависимости от версии Excel):

Варианты импорта

  1. Выгрузка на лист: выберите способ представления данных → Таблица, поместить данные на лист. На листе будет создана «умная» smart-таблица с данными из Power Query.
  2. Сводная таблица или сводная диаграмма: способ представления → Отчет сводной таблицы или Сводная диаграмма. Данные будут импортированы в виде сводной таблицы.
  3. Только подключение: выберите Только создать подключение. Запрос будет сохранен.
  4. Добавить данные в модель данных: при нажатии галочки «Добавить эти данные в модель данных» результаты выполнения запроса будут добавлены в модель Power Pivot.

Понравилась статья? Поделить с друзьями:
  • Powerpoint charts from excel
  • Powershell excel ширина столбца
  • Power query для excel книга
  • Powerpoint based on excel
  • Powershell excel удалить строку