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

7a. Power Query и язык М

Адам Аспин. Язык M Power Query

Это сокращенный перевод главы из книги Адама Аспина, посвященной работе в Power BI. М – это язык запросов, используемый Power BI и Excel Power Query. Описаны многообразные функции языка М, типы данных, создание пользовательской функции, добавление комментариев и многое другое. Заметка будет полезна, как быстрое введение в язык М Power Query.

Adam Aspin. Pro Power BI Desktop: Self-Service Analytics and Data Visualization for the Power User. – New York: Apress Media, 2020. – 918 p.

Подробнее »Адам Аспин. Язык M Power Query

ChatGPT и написание кода на языке М Power Query

В мою жизнь вошел ChatGPT! Я даже не знаю, с чем можно сравнить первое впечатление от использования бота. Это прорыв! Пока я обращаюсь к ChatGPT в двух случаях:

  • задаю вопросы, которые ранее обращал к Google,
  • прошу написать код на языке М Power Query (PQ).

Примеры первого типа можно встретить в комментариях к моим недавним заметкам Онлайн калькулятор статистической мощности G*Power и Фрэнсис Гальтон. Наследственность таланта, её законы и последствия. Сейчас я опишу, как ChatGPT помог мне сделать робастный[1] запрос на языке М Power Query.

Рис. 1. Загрузка CSV-файла в умную таблицу Excel

Подробнее »ChatGPT и написание кода на языке М Power Query

Линда Фоукс, Уоррен Спарроу. Изучаем Power Query

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

Линда Фоукс, Уоррен Спарроу. Изучаем Power Query. – М.: ДМК Пресс, 2021. – 378 с.

Подробнее »Линда Фоукс, Уоррен Спарроу. Изучаем Power Query

Цикл в Power Query на основе функции List.Accumulate

Язык М Power Query в явном виде использует единственную управляющую структуру:

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

Рис. 1. Сведения о функции List.Accumulate с сайта Microsoft

Подробнее »Цикл в Power Query на основе функции List.Accumulate

Язык М Power Query. Пользовательские типы

В предыдущих заметках мы рассказали об основах системы типов и аспектах типов. В настоящей заметке будут представлены сложные типы (также известные как пользовательские или производные). Основное внимание будет уделено синтаксису и правилам соответствия. А вот обсуждение того, как M работает с этими типами, мы перенесем в следующий пост.[1]

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

Подробнее »Язык М Power Query. Пользовательские типы

Язык М Power Query. Система типов. Аспекты

Обращали ли вы внимание, что в редакторе Power Query меню типа данных столбца включает четыре варианта для чисел: Десятичное число, Валюта, Целое число и Процент? До сих пор в этой серии заметок мы говорили только об одном числовом типе: type number. Есть ли какие-то типы, которые мы пропустили?

Рис. 1. Аспекты типа number

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

Подробнее »Язык М Power Query. Система типов. Аспекты

Язык М Power Query. Система типов. Основы

Система типов Power Query помогает понять значения, с которыми мы работаем, описать типы данных, ожидаемых от пользовательских функций, дает доступ к документации (которую может отображать IntelliSense) и предоставляет механизм информирования пользователей о структуре данных, которые могут отображаться в хост-среде, например, для настройки типов столбцов.[1]

Подход M к типам на макроуровне заключается в следующем:

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

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

Подробнее »Язык М Power Query. Система типов. Основы

Язык М Power Query. Обработка ошибок

В М можно вызвать и обработать ошибки во время выполнения. Если из других языков программирования вы знакомы с идеей исключения, обработка ошибок Power Query отличается по крайней мере одним существенным моментом.[1]

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

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

Подробнее »Язык М Power Query. Обработка ошибок

Язык М Power Query. Структура управления

В названии нет опечатки. В мире Power Query нет управляющих структур (множественное число). Есть только одна управляющая структура. Мы изучим её. Что касается «отсутствующих» структур управления (к которым вы, привыкли в других языках программирования), мы рассмотрим несколько примеров обходных способов реализации аналогичной функциональности в коде M.[1]

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

Подробнее »Язык М Power Query. Структура управления

Язык М Power Query. Табличное мышление

Зачем вам понимание того, как Power Query думает о таблицах? В конце концов, вы пишете выражение, движок делают свою работу, в итоге получается таблица. Все довольны, и какое вам дело, что «за кулисами»… Верно? Да… до тех пор, пока вы не столкнетесь с проблемами производительности, не измените значение во время обработки или не возникнет ошибка брандмауэра… И что тогда? Понимание того, как M обрабатывает таблицы, является важным преимуществом при разработке эффективных запросов, позволяет избежать изменчивость результатов и обеспечить конфиденциальность данных. К табличному мышлению языка М относятся следующие темы: потоковая передача, свертывание запросов, буферизация, ключевые столбцы, встроенное кэширование, брандмауэр…[1]

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

Подробнее »Язык М Power Query. Табличное мышление