Россия Нет

VAR и RETURN: создание переменных в DAX (Power BI)

 Содержание статьи: (кликните, чтобы перейти к соответствующей части статьи):


Приветствую Вас, дорогие друзья, с Вами Будуев Антон. В данной статье мы разберем инструмент, появившийся в языке DAX относительно недавно — это переменные, создаваемые через специальные функции (служебные слова) VAR и RETURN. Рассмотрим их на примере разбора формулы в Power BI.

Для Вашего удобства, рекомендую скачать «Справочник DAX функций для Power BI и Power Pivot» в PDF формате.

Если же в Ваших формулах имеются какие-то ошибки, проблемы, а результаты работы формул постоянно не те, что Вы ожидаете и Вам необходима помощь, то записывайтесь в бесплатный экспресс-курс «Быстрый старт в языке функций и формул DAX для Power BI и Power Pivot».

 

VAR и RETURN: создание переменных в DAX (Power BI)

Итак, любая переменная в DAX всегда состоит из обязательного синтаксиса, давайте разберем его.

Синтаксис:

VAR Name 1 = Код Переменной 1
VAR Name 2 = Код Переменной 2
RETURN

Name 1 * Name 2

Где:

  • Name — имя создаваемой переменной
  • Код Переменной — любая DAX формула, характеризующая саму переменную
  • VAR — служебное слово (специальная функция), всегда предшествующая объявлению имени переменной при ее создании
  • RETURN — служебное слово (специальная функция), оканчивающая создание (объявление) блока переменных, после него идет основной код формулы
  • Name 1 * Name 2 — основной код формулы (меры, вычисляемого столбца или таблицы)

Для чего нужны переменные в DAX (Power BI)?

Переменные:

  • визуально упрощают сложный код формулы в DAX
  • уменьшают время расчета сложного кода, который имеет повторяемые участки, так как переменная рассчитывается только 1 раз и ей можно заменить повторяемые участки кода в основной формуле
  • «запоминают контекст строки», в котором переменная была вычислена

Рассмотрим применение переменных (VAR и RETURN) в Power BI на основе очень простого, но показательного примера DAX формулы.

В Power BI Desktop имеется исходная таблица «Товары», содержащая столбцы [Товар], [Затраты], [Количество] и [Цена]:

 

Необходимо в этой таблице рассчитать прибыль по каждой строчке товара. Прибыль равняется цене за вычетом затрат, помноженная на количество. Напишем эту простую формулу:

Прибыль = 
([Цена] - [Затраты])
* [Количество]

Данная формула состоит из двух простейших действий:

  1. ([Цена] — [Затраты]), то есть, в этом действии высчитывается прибыль по одной единице товара
  2. * [Количество], то есть, результат первого действия (прибыль по одной единице товара) помножается на количество товара в конкретной строке таблицы

Посмотрим, как эта формула отработала в Power BI:

 

Теперь, давайте изменим эту формулу, применив в ней переменные.

Скажу сразу, что на самом деле, здесь переменные вовсе не нужны, но на этом простом примере очень легко понять функционирование переменных в DAX.

Итак, формула с использованием переменной в Power BI будет такая:

Прибыль = 
VAR p1 = [Цена] - [Затраты]
RETURN
p1 * [Количество]

В данной формуле мы создали одну переменную. Ее имя — p1.

Перед созданием (объявлением) самой переменной, обязательно нужно прописать функцию (служебное слово) VAR, что мы и сделали. Дословно, VAR говорит движку DAX, что далее пойдет имя и код переменной.

И в самом деле, после VAR мы написали имя переменной p1, а затем, через знак равно (=) код самой переменной: [Цена] — [Затраты].

Далее, как мы закончили описывать все наши переменные (а у нас она всего одна), мы прописали функцию (служебное слово) RETURN, которое сообщает движку DAX, что все коды переменных закончились и далее пойдет основной код формулы вычисляемого столбца.

В основном коде вычисляемого столбца, после RETURN мы столбец [Количество] помножили на переменную p1. А переменная p1 это не что иное, как [Цена] — [Затраты].

В итоге, в Power BI вычисляемый столбец на основе формулы с использованием переменных имеет ровно те же значения, что и без них:

 

Теперь, пойдем еще дальше и объявим вторую переменную:

Прибыль = 
VAR p1 = [Цена] - [Затраты]
VAR p2 = [Количество]
RETURN
p1 * p2

В этой новой версии формулы мы создали вторую переменную с именем p2. Как и должно быть по правилу синтаксиса, перед созданием (объявлением) второй переменной мы прописали функцию (служебное слово) VAR. Далее имя переменной, знак равно и сам код переменной, который равен значениям столбца [Количество].

После того, как были объявлены все переменные (в нашем случае их две) мы прописали RETURN, которое, напоминаю, говорит о том, что объявление переменных закончено и далее пойдет основной код меры, вычисляемого столбца или таблицы. Как, собственно, и в нашей формуле — далее пошел основной код нашего вычисляемого столбца [Прибыль].

А основной код у нас стал совсем простым: переменная p1 помножается на переменную p2, то есть, результат разницы столбцов [Цена] и [Затраты] помножается на значения столбца [Количество].

Опять же, в Power BI эта версия формулы вычисляемого столбца [Прибыль] с двумя переменными имеет точно такой же результат, как и ранее:

 

Как мы видим из всего примера, которой разобрали выше, переменные действительно помогают разложить некую сложную формулу на простые части. В данном случае, у нас формула и так была простая, но в рамках обучения, мы ее сумели еще разложить на 2 простые части (2 переменные).

Напоминаю, что это не единственная польза переменных. Например, в сложном коде могут встречаться одни и те же части, повторяемые несколько раз. И использование переменных позволяет не только сократить длину кода, написав этот код один раз в переменной, и далее просто ссылаться на имя этой переменной, так и сократить время вычисления этой большой формулы. Так как повторяемый код прописанный переменной вычисляется только один раз, а далее, при вызове имени переменной из основного кода, просто уже будет возвращаться вычисленный ранее результат переменной.

На этом, с разбором переменных в DAX и служебных функций VAR и RETURN в Power BI, все.

Успехов Вам, друзья!
 

Подробное ВИДЕО «Делите большие формулы в Power BI на смысловые части при помощи переменных DAX»









Ссылки из видео:
1) [Регистрируйтесь в бесплатном экспресс-курсе] Быстрый старт в языке функций и формул DAX для Power BI и Power Pivot: зарегистрироваться
2) [Скачивайте PDF] Справочник DAX функций для Power BI и Power Pivot на русском языке: скачать

Пожалуйста, оцените статью:

  1. 5
  2. 4
  3. 3
  4. 2
  5. 1
(16 голосов, в среднем: 5 из 5 баллов)
[Экспресс-видеокурс] Быстрый старт в языке DAX

 
 
Антон БудуевУспехов Вам, друзья!
С уважением, Будуев Антон.
Проект «BI — это просто»
 
 
 
 

Если у Вас появились какие-то вопросы по материалу данной статьи, задавайте их в комментариях ниже. Я Вам обязательно отвечу. Да и вообще, просто оставляйте там Вашу обратную связь, я буду очень рад.
 
Также, делитесь данной статьей со своими знакомыми в социальных сетях, возможно, этот материал кому-то будет очень полезен.

 
Понравился материал статьи?
Избранные закладкиДобавьте эту статью в закладки Вашего браузера, чтобы вернуться к ней еще раз. Для этого, прямо сейчас нажмите на клавиатуре комбинацию клавиш Ctrl+D

Автор статьи:
Категория: Язык функций и формул DAX для Power BI и Excel (Power Pivot)

Добавить комментарий

* Заполняя форму отправки комментария своими персональными данными (имя, email, сайт и др.), Вы автоматически подтверждаете свое согласие на обработку своих персональных данных


  1. Роман:

    Здравствуйте!
    Спасибо за такой редкий и качественный контент для рунета. Действительно очень полезный ресурс!

  2. Василий:

    Антон, здравствуйте!

    Переменная создаёт таблицу без предустановленных фильтров?
    К примеру у меня два вложенных фильтра по разным столбцам и переменная используется в обоих фильтрах — результат я получаю разные почему-то, если формула с и без переменных.

    Спасибо.

    1. Антон Будуев:

      Василий, здравствуйте.
      Нужно смотреть сам код…