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