DAX
February 15, 2024

Table Constructor DAX. Синтаксис и примеры использования

Часто в работе обращаюсь к синтаксису конструктора таблиц DAX. Давайте разберемся что это и зачем надо.

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

Порисуем в Dax Studio

Таблица из одной строки и колонки Value

Если копировали запрос из анализатора производительности Power BI, то видели, что в нем все значения срезов отчета переданы в Treatas.

var _dsofiltertable1 = TREATAS({2024},'Календарь'[Год])

Здесь из значения года 2024 сформирована таблица из одной колонки и строки.

В Treatas можно передавать несколько строк:

Таблица из двух строк и одной колонки Value

Или можно передать таблицу из двух колонок:

Таблица из двух колонок

Тогда функция Treatas будет выглядеть примерно так

var _dsofiltertable = TREATAS({(2024,1)},'Календарь'[Год],'Календарь'[Мес])

Оператор IN тоже успешно работает с конструктором

caclulate([Продано], 'Календарь'[Год] in {2021, 2022})

или с двумя столбцами

caclulate([Продано], ('Календарь'[Год],'Календарь'[Мес]) in {(2021, 1)})

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

Evaluate {_testmeasure}

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

И на последок функция Datable, которая позволяет указывать имена и тип столбцам. Это функция часто используется при создании небольших справочников в модели данных.

Таблица с именами столбцов