Table Constructor DAX. Синтаксис и примеры использования
Часто в работе обращаюсь к синтаксису конструктора таблиц DAX. Давайте разберемся что это и зачем надо.
Синтаксис конструктора позволяет собрать на лету таблицу из пары известных значений. Результат этой таблицы можно передать в функцию Treatas или оператор IN, это самые распространенные примеры.
Если копировали запрос из анализатора производительности Power BI, то видели, что в нем все значения срезов отчета переданы в Treatas.
var _dsofiltertable1 = TREATAS({2024},'Календарь'[Год])Здесь из значения года 2024 сформирована таблица из одной колонки и строки.
В Treatas можно передавать несколько строк:
Или можно передать таблицу из двух колонок:
Тогда функция Treatas будет выглядеть примерно так
var _dsofiltertable = TREATAS({(2024,1)},'Календарь'[Год],'Календарь'[Мес])Оператор IN тоже успешно работает с конструктором
caclulate([Продано], 'Календарь'[Год] in {2021, 2022})caclulate([Продано], ('Календарь'[Год],'Календарь'[Мес]) in {(2021, 1)})Очень часто при оптимизации большой меры, могу вывести ее значение в блоке Evaluate просто обернув в фигурные скобочки. Быстро и удобно.
Evaluate {_testmeasure}Очевидно, конструкторы таблиц полезный функционал, который помогает при разработке мер и их оптимизации.
И на последок функция Datable, которая позволяет указывать имена и тип столбцам. Это функция часто используется при создании небольших справочников в модели данных.