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

7a. 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. Табличное мышление

Язык М Power Query. Синтаксис таблиц

Таблицы – основа Power Query. Вы пишите запросы, чтобы подсоединиться к одному или нескольким источникам, извлечь, объединить и обработать данные, а затем вернуть результаты в виде таблицы в Excel (или Power BI). В связи с таблицами можно изучать много интересного, но мы сосредоточимся на синтаксисе. Предыдущий пост мы завершили мыслью о том, что по поведению таблицы похожи на списки и записи. При этом таблицы больше, чем просто список записей. Начнем рассмотрение с того, что общего в списках и таблицах.[1]

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

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

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

Язык М Power Query. Типы list, record (список и запись)

Возможно, вы склонны пропустить изучение списков и записей, и сразу перейти к таблицам. И действительно, в большинстве запросов вы в основном работаете с таблицами. А таблицы состоят из значений примитивных типов, о которых вы узнали в предыдущих заметках. Так зачем же вам list и record? Оказывается, таблица ведет себя так же, как список и запись. Если вы хотите использовать все возможности, которые предлагает таблица, изучите list и record. Кроме того, существует связь между выражением let и типом record. Так что, полезного вам чтения![1]

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

Рис. 1. Список в редакторе Power Query

Подробнее »Язык М Power Query. Типы list, record (список и запись)

Язык М Power Query. Типы logical, null и binary

Эта заметка завершает обзор примитивных типов языка М: текст, число, дата/время, логический, бинарный и null.[1]

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

Рис. 1. Выражение if возвращает логическое значение

Подробнее »Язык М Power Query. Типы logical, null и binary