Данное краткое руководство предназначено для пользователей, начинающих работать с Power Pivot в Excel или с проектами табличной модели, созданными в SQL Server Data Tools. Это быстрое и простое введение в использование выражений анализа данных (DAX) для решения ряда основных задач по моделированию данных и аналитике. В этой статье объясняются термины, описываются возможные задачи и предлагаются вопросы для проверки ваших знаний. После прочтения статьи вы будете хорошо понимать базовые понятия DAX.
Что такое DAX?
DAX — это набор функций, операторов и констант, которые можно использовать в формуле или выражении, чтобы подсчитывать и возвращать одно или несколько значений. Говоря проще, DAX помогает создавать новую информацию из данных, уже имеющихся в модели.
Почему DAX — это полезно?
Создать книгу и импортировать в нее данные несложно. Можно даже создавать сводные таблицы или сводные диаграммы для отображения важной информации без применения формул DAX. Однако что, если необходимо, например, проанализировать критичные данные о продажах по нескольким категориям товаров для разных диапазонов дат? Или, например, требуется свести важные данные по инвентаризации из нескольких таблиц в разных источниках данных? Все эти, а также многие другие возможности предоставляют формулы DAX. Умение создавать эффективные формулы DAX поможет извлечь наибольшую пользу из данных. Располагая нужными данными, можно начинать решать реальные бизнес-задачи, влияющие на конечный итог. Это называется бизнес-аналитикой, овладеть которой помогает DAX.
Предварительные требования
Пользователь может уже быть знаком с созданием формул в Microsoft Excel. Эти знания помогут в освоении DAX, но даже если нет опыта работы с формулами Excel, описанные здесь основные понятия помогут сразу начать создавать формулы DAX и решать практические задачи по бизнес-аналитике.
Наибольшее внимание уделяется формулам DAX, применяемым в вычислениях. Необходимо предварительно ознакомиться с основными понятиями вычисляемых столбцов и мер (вычисляемых полей), которые описаны в справке Power Pivot. Также необходимо ознакомиться со средой и средствами разработки Power Pivot в Excel.
Образец книги
Для освоения DAX лучше всего создать несколько простых формул, применить их к реальным данным и посмотреть на результаты. В примерах и упражнениях данного руководства используется книга Contoso Sample DAX Formulas.xlsx. Ее можно скачать по ссылке http://go.microsoft.com/fwlink/?LinkID=237472&clcid=0x409. После скачивания книги на компьютер откройте ее, затем откройте окно Power Pivot.
Начнем!
Говоря о DAX, необходимо отметить три основополагающих понятия: синтаксис, функции и контекст. В DAX, разумеется, существуют и другие важные понятия, однако понимание этих трех концепций послужит наилучшим фундаментом для приобретения навыков DAX.
Синтаксис
Перед созданием собственных формул предлагаем ознакомиться с синтаксисом формул DAX. Синтаксис состоит из различных элементов, составляющих формулу (говоря проще, из правил написания формул). Рассмотрим простой пример формулы DAX, создающей новые данные (значения) для каждой строки в вычисляемом столбце Margin в таблице FactSales (цвета текста в формуле приводятся только в качестве иллюстрации).
Синтаксис этой формулы включает следующие элементы:
-
Оператор равенства (=) означает начало формулы, которая после вычисления возвратит результат или значение. Все формулы, вычисляющие значения, начинаются со знака равенства.
-
Ссылаемый столбец [SalesAmount] содержит уменьшаемые значения. Ссылка на столбец в формуле всегда заключена в квадратные скобки ([]). В отличие от формул Excel, которые ссылаются на ячейку, формула DAX всегда ссылается на столбец.
-
Математический оператор вычитания (-).
-
Ссылаемый столбец [TotalCost] содержит значения, которые требуется вычесть из значений в столбце [SalesAmount].
Для лучшего понимания формул DAX зачастую полезно перевести каждый из элементов формулы на повседневный язык. Например, данную формулу можно прочитать следующим образом.
В таблице FactSales для каждой строки в вычисляемом столбце Margin вычислите значение (=), вычитая значения в столбце [TotalCost] из значений в столбце [SalesAmount].
Рассмотрим формулу другого типа, используемую в мере.
Синтаксис этой формулы включает следующие элементы:
-
Имя меры: "Сумма Sales Amount". Формулы для мер могут включать в себя имя меры, затем двоеточие, затем формулу вычисления.
-
Оператор равенства (=) означает начало формулы вычисления. При вычислении она возвращает результат.
-
Функция SUM складывает все числа в столбце [SalesAmount]. О функциях будет рассказано позже.
-
Внутри скобок () содержится один или несколько аргументов. Для каждой функции необходим минимум один аргумент. Аргумент служит для передачи значения функции.
-
Ссылаемая таблица FactSales.
-
Ссылаемый столбец [SalesAmount] в таблице FactSales. Этот аргумент указывает функции SUM на столбец с числами, которые требуется сложить.
Данную формулу можно прочитать следующим образом:
Для меры "Сумма Sales Amount" вычислить (=) сумму (SUM) значений в столбце [ SalesAmount ] в таблице FactSales .
При помещении в зону значений в списке полей сводной таблицы эта мера вычисляет и возвращает значения, определенные каждой ячейкой в сводной таблице, например Cell Phones in the USA.
Заметьте, что эта формула имеет ряд отличий от формулы, использованной нами для вычисляемого столбца Margin. В частности, в ней применена функция SUM. Функции предварительной записи формулы, выполняющие им более простые и сложные вычисления для работы со значениями даты и времени, текстом и т. д. О функциях будет рассказано позже.
В отличие от вышеупомянутого вычисляемого столбца Margin, в данном случае перед столбцом [SalesAmount] стоит таблица FactSales, к которой принадлежит столбец. Это называется полным именем столбца, потому что перед именем столбца добавляется имя таблицы. Для столбцов, на которые ссылаются в одной и той же таблице, присутствие в формуле имени таблицы необязательно. В некоторой степени это укорачивает сложные формулы, ссылающиеся на множество столбцов, и облегчает их чтение. Однако по возможности рекомендуется всегда включать имя таблицы в формулы мер, даже для столбцов в одной и той же таблице.
Примечание: Если имя таблицы содержит пробелы, зарезервированные ключевые слова или недопустимые символы, необходимо заключить его в одинарные кавычки. Также необходимо заключать в кавычки имена таблиц, содержащие любые символы вне диапазона алфавитно-цифровых символов ANSI, независимо от поддержки кодировки в локали.
Очень важно использовать правильный синтаксис в формулах. В большинстве случаев при неправильном синтаксисе будет возвращена ошибка. Иногда синтаксис может быть правильным, однако возвращаемые значения не будут соответствовать ожиданиям. Power Pivot (а также SQL Server Data Tools) включает в себя функцию IntelliSense, помогающую в выборе правильных элементов и тем самым позволяющую создавать формулы с правильным синтаксисом.
Создадим простую формулу. Данное упражнение поможет лучше изучить синтаксис формул и возможности функции IntelliSense в строке формул.
Задача: создание простой формулы для вычисляемого столбца
-
Если вы еще не находитесь в окне Power Pivot, в Excel на ленте Power Pivot щелкните окно Power Pivot.
-
В окне Power Pivot щелкните таблицу (вкладку) FactSales.
-
Прокрутите до крайнего правого столбца, затем щелкните Добавить столбец в заголовке столбца.
-
Щелкните строку формул в верхней части окна конструктора моделей.
Курсор теперь находится в строке формул. В строке формул введите формулу для вычисляемого столбца или вычисляемого поля.
Обратите внимание на три кнопки слева от строки формул.
Эти три кнопки активны, когда активный курсор находится в строке формул. Крайняя левая кнопка X — кнопка отмены. Попробуйте нажать ее. Курсор больше не отображается в строке формул; кнопка отмены и кнопка с галочкой также исчезли. Попробуйте снова щелкнуть строку формул. Кнопка отмены и кнопка с галочкой снова отображаются. Это означает, что можно вводить формулу.
Кнопка с флажком служит для проверки формулы. Пока формула не введена, эта кнопка не представляет интереса. Мы вернемся к ней чуть позже.
Нажмите кнопку Fx. Появится новое диалоговое окно — "Вставка функции". В нем проще всего ввести формулу DAX. Чуть позже вы добавим в формулу функцию при создании меры; сейчас добавлять функцию в формулу вычисляемого столбца необязательно. Закройте диалоговое окно "Вставка функции".
-
В строке формул введите знак равенства (=), затем — открывающую квадратную скобку [. Появляется небольшое окно со всеми столбцами в таблице FactSales. Эта технология IntelliSense в действии.
Поскольку вычисляемые столбцы всегда создаются в активной таблице, нет необходимости указывать имя таблицы перед именем столбца. Прокрутите вниз, затем дважды щелкните [SalesQuantity]. Можно также прокрутить до имени желаемого столбца и нажать клавишу Tab.
Теперь курсор активен справа от [SalesQuantity].
-
Нажмите пробел, затем введите оператор вычитания (-) и еще один пробел.
-
Теперь введите еще одну открывающую квадратную скобку [. В этот раз выберите столбец [ReturnQuantity] и нажмите клавишу ВВОД.
Если возникла ошибка, внимательно проверьте синтаксис. При необходимости сравните синтаксис с формулой в ранее описанном вычисляемом столбце Margin.
После нажатия клавиши ВВОД для завершения формулы в строке состояния в нижней части окна Power Pivot отображается слово Вычисление. Процесс завершается быстро, хотя вычисляются новые значения для свыше трех миллионов строк.
-
Щелкните правой кнопкой мыши заголовок столбца и задайте ему новое имя NetSales.
Это все! Только что мы создали простую и в то же время очень эффективную формулу DAX. Для каждой строки в таблице FactSales формула NetSales вычисляет значение путем вычитания значения в столбце [ReturnQuantity] из значения в столбце [SalesQuantity]. Обратите внимание на фразу «для каждой строки». Это беглый взгляд на еще одно очень важное понятие в DAX — контекст строки. О контексте строки будет рассказано позже.
При введении оператора в формулу DAX очень важно иметь ввиду тип данных в используемых аргументах. Например, если ввести формулу «= 1 & 2», будет возвращено текстовое значение «12». Это происходит потому, что оператор-амперсанд (&) служит для объединения текста. DAX интерпретирует эту формулу следующим образом: вычислить результат, принимая значение 1 и добавляя значение 2 в виде текста. Теперь, если потребуется ввести = 1 + 2, то эту формулу DAX воспринимает следующим образом: вычислить результат, создав числовое значение 1 и добавив числовое значение 2. Разумеется, результатом является числовое значение «3». DAX вычисляет итоговые значения в зависимости от оператора в формуле, а не от типа данных столбцов, использующихся в аргументе. Типы данных в DAX очень важны, однако в целях данного краткого руководства не рассматриваются. Дополнительные сведения о типах данных и операторах в формулах DAX см. в разделе «Справочник DAX» (http://go.microsoft.com/fwlink/?LinkId=239769&clcid=0x419) электронной документации.
Попробуем еще один вариант. В этот раз создадим меру путем ввода формулы с использованием IntelliSense. Не переживайте, если формула не совсем понятна. В данном случае важно научиться создавать формулу с правильным синтаксисом, используя несколько элементов.
Задача: создание формулы меры
-
В таблице FactSales щелкните любую пустую ячейку в области вычислений. Это область из пустых ячеек сразу под таблицей в окне Power Pivot.
-
В строке формул введите имя «Previous Quarter Sales:».
-
Введите знак равенства (=) для начала ввода формулы вычисления.
-
Введите первые три буквы CAL, затем дважды щелкните желаемую функцию. В данном примере мы будем использовать функцию CALCULATE.
-
Введите открывающую скобку ( для начала ввода аргументов, передаваемых функции CALCULATE.
Заметьте, что после ввода открывающей скобки технология IntelliSense подсказывает вам аргументы, необходимые для функции CALCULATE. Об аргументах будет рассказано чуть позже.
-
Введите первые несколько букв таблицы FactSales , а затем в раскрывающемся списке дважды щелкните FactSales[Sales].
-
Введите запятую (,) для указания первого фильтра, затем введите PRE и дважды щелкните функцию PREVIOUSQUARTER.
После выбора функции PREVIOUSQUARTER появляется еще одна открывающаяся скобка, указывая на необходимость еще одного аргумента; на этот раз для функции PREVIOUSQUARTER.
-
Введите первые три буквы Dim, а затем дважды щелкните DimDate[DateKey].
-
Закройте оба аргумента (для функции PREVIOUSQUARTER и для функции CALCULATE), введя две закрывающие скобки )).
Формула должна выглядеть следующим образом:
Previous Quarter Sales:=CALCULATE(FactSales[Sales], PREVIOUSQUARTER(DimDate[DateKey]))
-
Нажмите кнопку с флажком в строке формул для проверки формулы. В случае возникновения ошибки проверьте каждый элемент синтаксиса.
Получилось! С помощью DAX мы только что создали довольно сложную меру. Эта формула подсчитает общую сумму продаж за прошлый квартал с учетом фильтров, применяемых в сводной таблице или диаграмме.
Только что был рассмотрен ряд важных аспектов формул DAX. Во-первых, в данной формуле были использованы две функции. Обратите внимание, что функция PREVIOUSQUARTER вложена в качестве аргумента, передаваемого в функцию CALCULATE . Формулы DAX могут содержать до 64 вложенных функций. Маловероятно, что какая-либо формула будет содержать такое количество вложенных функций. Фактически, ее будет очень непросто создать и отладить, и вряд ли она будет отличаться скоростью.
В данной формуле также использованы фильтры. Фильтры ограничивают диапазон элементов для вычисления. В данном случае был выбран один фильтр в качестве аргумента, который на самом деле является еще одной функцией. О фильтрах будет рассказано позже.
Наконец, была использована функция CALCULATE. Это одна из наиболее мощных функций в DAX. В процессе разработки моделей данных и создания более сложных формул эта функция используется очень часто. Подробное обсуждение функции CALCULATE выходит за рамки данного краткого руководства, однако следует обращать на нее особое внимание по мере обретения опыта работы с DAX.
Примечание: Как правило, для использования функций логики операций со временем в формулах DAX необходимо указывать уникальный столбец с датами с помощью диалогового окна «Пометить как таблицу дат». В книге Contoso DAX Formula Samples.xlsx, в качестве уникального столбца с датами выбран столбец DateKey в таблице DimDate.
Дополнительные баллы
Вы можете спросить: "Какова самая простая формула DAX, которую я могу создать?" Ну, ответ на это - "формула, которую вы не должны". И это именно то, что можно сделать, используя стандартную агрегатную функцию в меру. Практически любая модель данных должна фильтровать и вычислять по агрегированным данным. Например, для сложения всех чисел в определенном столбце используется функция СУММ в мере Сумма продаж, которую вы видели ранее. DAX включает несколько других функций, которые также агрегируют значения. Вы можете автоматически создавать формулы с помощью стандартных агрегатов с помощью функции автосумы.
Дополнительная задача: создание формулы меры с использованием функции автосуммирования
-
Прокрутите таблицу FactSales до столбца ReturnQuantity и щелкните его заголовок, чтобы выделить весь столбец.
-
На вкладке Главная на ленте в группе Вычисления нажмите кнопку Автосумма .
Щелкните стрелку вниз рядом с элементом Автосумма, а затем щелкните Среднее (обратите внимание на другие стандартные агрегатные функции, которые вы также можете использовать).
Сразу же создается новая мера с именем "Среднее ReturnQuantity:", за которой следует формула =AVERAGE([ReturnQuantity]).
Просто, не правда ли? Конечно, не все формулы будут такими простыми. Однако с помощью функции автосуммирования можно быстро создавать простые формулы с помощью стандартных агрегатных вычислений.
Теперь уже должно было сложиться понимание синтаксиса, используемого в формулах DAX. Также, были рассмотрены некоторые очень полезные функции, в том числе IntelliSense и автосуммирование, которые помогут быстро создавать простые и точные формулы. Разумеется, о синтаксисе можно узнать намного больше. Хорошими источниками дополнительной информации является Справочник DAX и электронная документация по SQL Server.
Краткий тест по синтаксису
-
Что делает эта кнопка в строке формул?
-
Что всегда окружает имя столбца в формуле DAX?
-
Как написать формулу для следующего:
в таблице DimProduct для каждой строки в вычисляемом столбце UnitMargin вычислите значение, вычитая значения в столбце UnitCost из значений в столбце UnitPrice?
Ответы приведены в конце данного раздела.
Функции
Функции представляют собой стандартные формулы, которые производят вычисления, используя конкретные значения, называемые аргументами и указанные в определенном порядке. Аргументом может быть другая функция, другая формула, ссылка на столбец, число, текст, логическое значение (например, TRUE или FALSE) или константа.
В DAX предусмотрены следующие категории функций: дата и время, сведения, математические, логические, статистические, текст и функции логики операций со временем. Для пользователей, ранее работавших с функциями в формулах Excel, большая часть функций в DAX будет знакома; однако функции DAX имеют следующие отличия:
-
Функция DAX всегда ссылается на столбец или таблицу целиком. В формулу можно добавить фильтры, чтобы использовать только определенные значения из таблицы или столбца.
-
Если требуется построчная настройка вычислений, DAX предоставляет функции, в которых можно использовать текущее значение строки или связанное значение в качестве своеобразного аргумента, для выполнения вычислений в зависимости от контекста. О контексте будет рассказано позже.
-
DAX имеет множество функций, возвращающих таблицу вместо значения. Таблица не отображается, но используется для передачи данных другим функциям. Например, можно получить таблицу и затем подсчитать уникальные значения в ней или вычислить динамические суммы по отфильтрованным таблицам или столбцам.
-
DAX содержит множество различных функций логики операций со временем. Они позволяют определять или выбирать диапазоны дат и на их основе выполнять динамические вычисления. Например, можно сравнить суммы по параллельным периодам.
Иногда трудно понять, какие функции могут понадобиться в формуле. В Power Pivot и конструкторе табличных моделей в SQL Server Data Tools есть кнопка "Вставить функцию", открывающая диалоговое окно, где можно выбирать функции по категориям и просматривать их краткое описание.
Давайте создадим новую формулу, которая содержит функцию, выбранную с помощью кнопки «Вставить функцию».
Задача: добавление функции в формулу с помощью кнопки «Вставить функцию»
-
В таблице FactSales прокрутите до правого столбца, а затем в заголовке столбца щелкните Добавить столбец.
-
В строке формул введите знак равенства (=).
-
Нажмите кнопку Вставить функцию . откроется диалоговое окно Вставка функции .
-
В диалоговом окне Вставка функции щелкните список Выберите категорию . По умолчанию выбран параметр Все , а все функции в категории Все перечислены ниже. Это большое количество функций, поэтому функции следует отфильтровать, чтобы легче найти желаемый тип функции.
-
Для данного примера нужно вернуть данные, уже присутствующие в другой таблице. Для этого будет использована функция из категории Фильтры. Щелкните категорию Фильтр , а затем в разделе Выберите функцию прокрутите вниз и дважды щелкните функцию RELATED. Нажмите кнопку ОК , чтобы закрыть диалоговое окно Вставка функции .
-
Воспользуйтесь технологией IntelliSense, чтобы найти и выбрать столбец DimChannel[ChannelName].
-
Закройте формулу и нажмите клавишу ВВОД.
-
После нажатия клавиши ВВОД для завершения формулы в строке состояния в нижней части окна Power Pivot отображается слово Вычисление. Мы только что создали новый столбец в таблице FactSales со сведениями о канале из таблицы DimChannel.
-
Задайте для столбца новое имя Channel.
Формула должна выглядеть следующим образом: =RELATED(DimChannel [ChannelName])
Вы только что познакомились с другой очень важной функцией в DAX, функцией RELATED . Функция RELATED возвращает значения из другой таблицы. Функцию RELATED можно использовать, если существует связь между текущей таблицей и таблицей, содержащей желаемые значения. Разумеется, возможности функции RELATED очень обширны. В данном случае можно добавить в таблицу FactSales канал продаж для каждой продажи. Теперь можно скрыть таблицу DimChannel из списка полей сводной таблицы; это упростит просмотр и позволит отображать только самые важные и нужные сведения. Как и вышеописанная функции CALCULATE, функция RELATED очень важна, и, скорее всего, будет использоваться неоднократно.
Как видно, функции в DAX позволяют создавать очень эффективные формулы. Пока что были рассмотрены лишь основы функций. По мере обретения навыков DAX можно будет создавать формулы с множеством разных функций. Одно из лучших мест для получения сведений обо всех функциях DAX находится в справочнике по выражениям анализа данных (DAX).
Краткий тест по функциям
-
На что всегда ссылается функция?
-
Может ли формула содержать более одной функции?
-
Какая категория функций подходит для объединения двух текстовых строк в одну строку?
Ответы приведены в конце данного раздела.
Контекст
Контекст является одним из важнейших понятий в DAX. Существуют два типа контекста в DAX: контекст строки и контекст фильтра. Вначале рассмотрим понятие контекста строки.
Контекст строки
Контекст строки проще всего рассматривать как текущую строку. Помните, например, вычисляемый столбец Margin, описанный ранее в ходе ознакомления с синтаксисом? Формула « =[SalesAmount] - [TotalCost] » вычисляет значение в столбце Margin для каждой строки в таблице. Значения для каждой строки вычисляются из значений в двух других столбцах в той же строке, [SalesAmount] и [TotalCost]. С помощью DAX можно определить значения для каждой строки в столбце Margin благодаря наличию контекста: для каждой строки в столбце принимаются значения в столбце [TotalCost] и удаляются из значений в столбце [SalesAmount].
В выбранной ячейке, приведенной ниже, значение $49,54 в текущей строке было вычислено путем вычитания значения $51,54 в столбце [TotalCost] от значения $101,08 в столбце [SalesAmount].
Контекст строки применяется не только к вычисляемым столбцам. Контекст строки также применяется в случаях, когда формула имеет функцию, применяющую фильтры для определения одной строки в таблице. По существу функция будет применять контекст строки для каждой строки фильтруемой таблицы. Этот тип контекста строки чаще всего применяется к мерам.
Контекст фильтра
Контекст фильтра немного сложнее для понимания, чем контекст строки. Наиболее легко представить контекст фильтра как: один или несколько фильтров, примененных в вычислении, определяющем результат или значение.
Контекст фильтра не заменяет контекст строки; скорее, он применяется в дополнение к контексту строки. Например, чтобы еще больше ограничить диапазон значений в вычислении, можно применить контекст фильтра, который не только задает контекст строки, но также задает только конкретное значение (фильтр) в данном контексте строки.
Контекст фильтра хорошо заметен в сводных таблицах. Например, при добавлении TotalCost в область Values и последующем добавлении Year и Region в строку или в столбцы, задается контекст фильтра, который выбирает подмножество данных в зависимости от данного года и региона.
Почему контекст фильтра так важен в DAX? Потому что если контекст фильтра проще всего применить путем добавления срезов и меток столбцов и строк в сводную таблицу, его также можно применить в формуле DAX путем задания фильтра с использованием таких функций, как ALL, RELATED, FILTER и CALCULATE, а также с помощью связей и других мер и столбцов. Например, рассмотрим следующую формулу в мере StoreSales:
Эта формула явно сложнее, чем некоторые другие формулы, которые были рассмотрены ранее. Однако, чтобы лучше понять эту формулу, можно разбить ее на составляющие так же, как это было с другими формулами.
Синтаксис этой формулы включает следующие элементы:
-
Имя меры StoreSales с последующим двоеточием (:).
-
Оператор равенства (=) означает начало формулы.
-
Функция CALCULATE вычисляет выражение в качестве аргумента, в контексте, измененном заданными фильтрами.
-
Внутри скобок () содержится один или несколько аргументов.
-
Мера [Sales] в той же таблице в виде выражения. Мера Sales содержит формулу: =SUM(FactSales[SalesAmount]).
-
Фильтры разделены между собой запятыми (,).
-
Столбец, на который указывает ссылка, и конкретное значение, DimChannel[ChannelName] =”Store”, в качестве фильтра.
Данная формула гарантирует, что только значения продаж, определенные мерой Sales в качестве фильтра, вычисляются только для строк в столбце DimChannel[ChannelName] со значением "Store" в качестве фильтра.
Как можно представить, возможность задания контекста фильтра в формуле дает обширные и эффективные возможности. Возможность ссылки только на конкретное значение в связанной таблице — это лишь один пример. Не переживайте, если не удается сразу полностью усвоить понятие контекста. В процессе создания собственных формул появится понимание контекста и его важной роли в DAX.
Краткий тест по контексту
-
Как называются два типа контекста?
-
Что такое контекст фильтра?
-
Что такое контекст строки?
Ответы приведены в конце данного раздела.
Сводка
Теперь, когда вы получили общее представление об основных понятиях DAX, вы можете приступить к созданию собственных формул DAX для вычисляемых столбцов и мер. DAX может показаться сложным, но существует множество ресурсов, помогающих освоить его. Прочтите эту статью несколько раз и поэкспериментируйте с собственными формулами, а затем переходите к другим основным понятиям и формулам DAX, которые помогут в решении конкретных бизнес-задач. Существует множество ресурсов по DAX: справка по Power Pivot, электронная документация на SQL Server, технические документы и блоги сотрудников Майкрософт и ведущих специалистов в области бизнес-аналитики. Отличной отправной точкой является вики-сайт Центра ресурсов DAX (http://social.technet.microsoft.com/wiki/contents/articles/dax-resource-center.aspx). Справочник по выражениям анализа данных (DAX) также является отличным ресурсом. Не забудьте добавить его в закладки.
Технический документ «DAX в табличной модели бизнес-аналитики», доступный для загрузки по ссылке http://go.microsoft.com/fwlink/?LinkID=237472&clcid=0x419, содержит более подробное описание рассмотренных здесь основных понятий, а также многих других расширенных понятий и формул. В нем также используется книга Contoso DAX Sample Formulas.xlsx, которая была загружена для этого занятия.
Ответы на вопросы кратких тестов
Синтаксис:
-
Открывает диалоговое окно «Вставка функции».
-
Квадратные скобки [].
-
=[UnitPrice] – [UnitCost]
Функции:
-
На таблицу и столбец.
-
Да. Формула DAX может содержать до 64 вложенных функций.
Контекст:
-
Контекст строки и контекст фильтра.
-
Один или несколько фильтров в вычислении, определяющем одно значение.
-
Текущая строка.