DAX - язык формул (расшифровывается как
Коротко говоря, DAX - это формулы для сводных таблиц. Большинство функций DAX имеют схожие имена и характеристики по сравнению с обычными функциями Excel, однако могут использоваться только в PowerPivot. Как известно, обычные Сводные таблицы могут содержать расчётные поля (аналог
В целом, DAX не является сложным языком, как может показаться на первый взгляд, нужно лишь понять принципы его работы. Разница между формулами Excel и формулами DAX заключается в том, что в Excel мы оперируем отдельными ячейками и диапазонами, а в DAX можем обращаться только к целым таблицам и их колонкам.
Для начала работы с DAX кодом, нам нужно установить PowerPivot для Excel 2010 или перейти на одноимённую вкладку в Excel 2013.
Как и в Excel функции DAX относятся к определённым категориям, а именно:
В PowerPivot пользователь может создавать расчётные поля двух типов:
Одни и те же формулы могут вести себя по-разному, в зависимости от того, используются они в вычисляемом столбце или в мере. Если формула используется в вычисляемом столбце, она применяется к каждой строке столбца по всей таблице. Значение может зависеть от контекста строк. В мере результат вычислений ещё больше зависит от контекста. Это означает, что конструкция сводной таблицы и выбор заголовков строк и столбцов влияют на значения, которые используются в вычислениях.
То есть, другими словами, когда мы создаём Сводную таблицу, то:
В языке DAX присутствует также такое понятие как контекст, которое очень важно для понимания функционирования формул. На формулы в PowerPivot могут влиять фильтры, применённые в сводной таблице, связи между таблицами и фильтры, имеющиеся в формулах. Контекст позволяет выполнять динамический анализ. При построении и устранении неполадок в формулах важно понимать назначение контекста.
Итак, в DAX существуют три типа контекста: контекст фильтра, контекст строки и контекст запроса.
Контекст фильтра - это набор значений, разрешённых в каждом столбце в зависимости от ограничений фильтра, которые применяются к строке или которые определены критериями фильтра в формуле.
Контекст строки - фактически соответствует понятию текущей строки. Если создан вычисляемый столбец, то контекстом строки служат значения в каждой отдельной строке и значения в столбцах, связанных с текущей строкой.
Контекст запроса - относится к подмножеству данных, которые неявным образом создаются для каждой ячейки сводной таблицы в зависимости от заголовков строки и столбца в сводной таблице (конструкции макета Сводной таблицы).