Перейти к содержимому

7a. Power Query и язык М

Язык М Power Query. Функции: вложенность, each, замыкание и рекурсия

Это очередная заметка, посвященная основам языка М Power Query. Ранее мы рассмотрели, как определять и вызывать функции. Но функции также можно создавать налету. Т.е. использовать функции без явного определения и вызова. Для этого в языке М применяется конструкция с ключевым словом each. Это слово часто появляется в коде, сгенерированном интерфейсом редактора запросов. Оказывается, это удобный ярлык для упрощения кода.[1]

Предыдущая заметка     Следующая заметка

Рис. 1. Функция, как аргумент другой функции; чтобы увеличить изображение кликните на нем правой кнопкой мыши и выберите Открыть картинку в новой вкладке

Подробнее »Язык М Power Query. Функции: вложенность, each, замыкание и рекурсия

Функции в языке M Power Query

Это перевод статьи Александра Иванова, опубликованной в блоге 4pbi. В статье рассмотрено, как определять, вызывать, передавать и возвращать функции в языке М. Что такое замыкание (closure), как вызывать рекурсивные функции.

Как правило, функция – это фрагмент программного кода, который имеет имя, принимает значения в качестве параметров и возвращает результат. Удобно определять фрагмент кода как функцию, когда вам нужно выполнять одни и те же вычисления много раз в разных частях программы. Функцию не обязательно писать самому. В языке М масса встроенных функций, и вам не нужно знать, что происходит внутри функции. Вам лишь нужно понимать, какие параметры передать функции и какой результат будет возвращен. Итак, функция – черный ящик: мы передаем параметр(ы) и получаем результат.

Рис. 1. Код функции Test; чтобы увеличить изображение кликните на нем правой кнопкой мыши и выберите Открыть картинку в новой вкладке

Подробнее »Функции в языке M Power Query

Ключевое слово each в языке М Power Query

Это сокращенный перевод статьи Маркуса Краучера, опубликованной в блоге excelguru.ca. Изложение ведется от первого лица (Маркуса).

Рис. 1. Фильтрация таблицы на основе each; чтобы увеличить изображение кликните на нем правой кнопкой мыши и выберите Открыть картинку в новой вкладке

Подробнее »Ключевое слово each в языке М Power Query

Язык М Power Query. Функции

Это вторая заметка в серии, описывающей азы языка М Power Query. В предыдущей заметке говорилось, что основу языка М составляют выражения, которые возвращают значения. Простой оператор, такой как 1, – это выражение, которое создает значение. let – это также выражение, которое выдает значение. Так вот, функция – это выражение, которое тоже возвращает значение. В отличие от выражений, функция выдает это значение только при ее вызове.[1]

Предыдущая заметка     Следующая заметка

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

Рис. 1. Пример вложенной функции

Подробнее »Язык М Power Query. Функции

Язык М Power Query. Выражения и let

В Интернете довольно много примеров использования языка М Power Query для решения той или иной проблемы. Если можно просто скопировать и вставить код образца в ваш запрос, всё Ok. Но что делать, если требуется правка. Для этого нужно хоть немного разбираться в основах языка и его синтаксисе. Умники отсылают к официальной спецификации языка, но, поверьте, это не то, что нужно начинающим. Так что в этой и последующих заметках попробую объяснить азы доступным языком.[1]

Следующая заметка

Если вы впервые сталкиваетесь с Power Query, рекомендую начать с Марк Мур. Power Query.

Самая простая запись

Откройте имеющийся или пустой запрос в расширенном редакторе, и вы увидите выражение let. На самом деле, вы видели let так часто, что могли подумать, что для языка M это обязательно.  Совсем нет! Допускаются и более простые выражения.

Рис. 1. Самая простая запись на языке М

Подробнее »Язык М Power Query. Выражения и let

Николай Павлов. Скульптор данных в Excel с Power Query

Power Query – мощный инструмент для работы с данными в Microsoft Excel. В версии Excel 2010 года Power Query позиционировалась как надстройка. Сейчас – это элемент стандартного интерфейса вкладки Данные. И в самой ленте Excel не найти упоминания имени Power Query. Хотя за функционалом, связанным с импортом данных это имя сохранилось. С помощью Power Query можно легко решать множество задач, для которых раньше требовались сложные формулы или макросы. В книге подробно разбираются вопросы импорта данных в Excel из внешних источников (файлов разных форматов, баз данных, интернета и т.д.) и трансформации полученных таблиц. Книга рассчитана на средних и продвинутых пользователей. Ко всем описанным в книге задачам в комплекте идут файлы-примеры, которые можно использовать в работе.

Поскольку я уже прочитал по теме две книги (Кен Пульс и Мигель Эскобар. Язык М для Power Query и Гил Равив. Power Query в Excel и Power BI: сбор, объединение и преобразование данных), в настоящей заметке я рассказал на том, что было для меня новым (или что я уже успел забыть).

Николай Павлов. Скульптор данных в Excel с Power Query. – М.: Де’Либри, 2019. – 332 с.

Подробнее »Николай Павлов. Скульптор данных в Excel с Power Query

Заключительный проект в Power Query: объединяем все вместе

Это фрагмент книги Гил Равив. Power Query в Excel и Power BI: сбор, объединение и преобразование данных.

Предыдущий раздел                   К содержанию

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

Отчет о доходах компании Wide World Importers

Вы – специалист по данным в компании Wide World Importers. После атаки хакеров вас попросили восстановить отчет о доходах компании на основе старых данных. Ваш предшественник вел отчеты в трех файлах Excel за 2015-2017 годы. В каждом из них содержалось 12 листов – по одному на каждый месяц. А выручка 2018 года была экспортирована в формате csv. Нужно импортировать данные с 36 листов, объединить их с данными 2018 года и создать единый отчет.

Загрузите папку C14E01 и целевую таблицу в файле C14E01 — Goal.xlsx. Изучите файлы 2015.xlsx, 2016.xlsx и 2017.xlsx. Каждый лист содержит сводную таблицу формата 2*3:

Рис. 1. Исходные данные за 2015–2017 гг. в файлах Excel; чтобы увеличить изображение кликните на нем правой кнопкой мыши и выберите Открыть картинку в новой вкладке

Подробнее »Заключительный проект в Power Query: объединяем все вместе

Основы текстовой аналитики в Power Query

Это фрагмент книги Гил Равив. Power Query в Excel и Power BI: сбор, объединение и преобразование данных.

Предыдущий раздел                   К содержанию                 Следующий раздел

Текстовые столбцы позволяют извлекать дополнительный контекст. Описанные ниже методы полезны при анализе отзывов клиентов, комментариев или социальных сетей.

Поиск ключевых слов в текстовых столбцах

В следующем упражнении мы будем искать ключевые слова в сообщениях, которые Microsoft Press использует в постах на своей официальной странице в Facebook. Допустим, вам нужно оценить, какие из тем наиболее популярны в обсуждениях на Facebook: Microsoft Excel, Visual Studio, Azure, Windows.

Загрузите файл C11E01.xlsx и сохранить его в папке C:\Data\C11\. Откройте новую книгу Excel. Пройдите Данные –> Получить данные –> Из файла –> Из книги. Выберите файл C11E01.xslx и щелкните Импорт. В окне Навигатор выберите Sheet1 и щелкните Преобразовать данные. Обратите внимание, что посты Microsoft Press Facebook сохраняются в столбце Message. Ваша задача – выполнить поиск ключевых слов в этом столбце.

Рис. 1. Сообщения Microsoft Press на Facebook в редакторе Power Query; чтобы увеличить изображение кликните на нем правой кнопкой мыши и выберите Открыть картинку в новой вкладке

Подробнее »Основы текстовой аналитики в Power Query

От ловушек к робастным запросам в Power Query

Это фрагмент книги Гил Равив. Power Query в Excel и Power BI: сбор, объединение и преобразование данных.

Предыдущий раздел                   К содержанию                 Следующий раздел

10 ловушек, рассмотренные в этой главе, подробно обсуждаются в блоге автора книги.

Причины и следствия ловушек

В основе редактора Power Query лежат два основополагающих принципа:

  • Пользовательский интерфейс переводит шаги в код.
  • Предварительный просмотр данных помогает формировать логику преобразования.

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

Рис. 1. Жесткая ссылка на имена столбцов; чтобы увеличить изображение кликните на нем правой кнопкой мыши и выберите Открыть картинку в новой вкладке

Подробнее »От ловушек к робастным запросам в Power Query

Введение в язык формул M Power Query

Это фрагмент книги Гил Равив. Power Query в Excel и Power BI: сбор, объединение и преобразование данных.

Предыдущий раздел                   К содержанию                 Следующий раздел 

Возможности языка M реализуются с помощью трех пользовательских интерфейсов:

  • Строка формул — дает возможность изменить функцию M для настройки шагов преобразований в соответствии с вашими потребностями. Обычно мы так поступали, если в пользовательском интерфейсе отсутствовала конкретная возможность (например, по применению расширенного логического условия при фильтрации столбца).
  • Окно Настраиваемый столбец — обеспечивает выполнение некоторых вычислений на уровне строк и сохранение результатов в новом столбце.
  • Расширенный редактор — позволяет изменить несколько шагов в запросе, включить код из другого запроса или создать пользовательскую функцию.

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

Можно выделить шесть этапов в изучении языка M. Каждый этап позволяет решать новые типы проблем с данными, но при этом он будет удерживать вас в определенной «зоне комфорта». Задайте себе вопрос: «Готовы ли вы приложить значительные усилия, чтобы перейти к следующему этапу?»

Рис. 1. Этапы зрелости в обучении языку М; чтобы увеличить изображение кликните на нем правой кнопкой мыши и выберите Открыть картинку в новой вкладке

Подробнее »Введение в язык формул M Power Query