В языке для анализа данных DAX множество функций. В этой статье мы рассмотрим самые частоиспользуемые из них.
Набор данных
Тренироваться мы будем на простой импортированной в PowerBI Google-таблице, в которой содержится информация о продажах интернет-магазина: приобретенные товары, сумма чека, идентификатор покупателя. В PowerBI Desktop эту таблицу назовем "Заказы".
Товары | Сумма чека | ID Покупателя | Дата |
Компьютер | 30000 | 1 | 01.03.18 |
Компьютер, телевизор | 50000 | 2 | 01.03.18 |
Планшет | 12000 | 3 | 02.03.18 |
Смартфон | 18000 | 4 | 03.03.18 |
Ноутбук | 70000 | 5 | 03.03.18 |
Мышь | 1000 | 1 | 04.03.18 |
Планшет | 14000 | 2 | 05.03.18 |
Смарфон, компьютер | 48000 | 7 | 06.03.18 |
Смартфон | 18000 | 6 | 06.03.18 |
Компьютер | 30000 | 1 | 06.03.18 |
Функция SUM в DAX
Для начала, давайте посчитаем, какую выручку принес нам интернет-магазин. Для этого нам необходимо просуммировать все значения в столбце "Сумма чека".
В этом нам поможет функция SUM с простым синтаксисом:
SUM()
Всё, что нужно для расчета выручки — создать DAX-формулу с указанием столбца "Сумма чека":
Выручка = SUM('Заказы'[Сумма чека])
Обратите внимание, что для работы функции необходимо, чтобы у столбца был числовой тип.
Функции COUNT и DISTINCTCOUNT
Предназначение данных функций — считать количество строк, их синтаксис так же прост, как и у функции SUM:
COUNT()
DISTINCTCOUNT()
Для начала, давайте посчитаем кол-во заказов в нашей таблице. Поскольку одному заказу соответстует одна строчка в нашей таблице, для вычисления количества заказов необходимо просто посчитать кол-во строк по любому из столбцов:
Заказы = COUNT('Заказы'[Товары])
В отличие от COUNT, DISTINCTCOUNT считает только количество строк с уникальными значениями выбранного столбца. С помощью этой функции мы сможем посчитать уникальное количество наших клиентов. В данном случае нам нужно выбрать уже не любой столбец, а исключительно столбец "ID покупателя":
Уникальные клиенты = DISTINCTCOUNT('Заказы'[ID Покупателя])
Функция DIVIDE
Функция DIVIDE — это замена стандартной операции деления в PowerBI. Я крайне рекомендую использовать ее в своих BI-моделях, поскольку в отличие от стандартной операции деления при использовании DIVIDE не возникает ошибки в случае деления на ноль.
Синтаксис этой функции уже немного сложнее:
DIVIDE(<Числитель>, <Знаменатель> [,<альтерн. результат>])
За значение созданной меры в случае деления на ноль отвечает параметр "альтернативный результат". Это необязательный параметр, по умолчанию он равен BLANK(), которая возвращает пустой результат.
Давайте вычислим средний чек нашего интернет-магазина, для этого нам нужно разделить выручку на кол-во заказов. Посколько обе эти меры у нас уже созданы, формула будет выглядеть следующим образом:
Средний чек = DIVIDE([Выручка];[Заказы])]
Если вам не нужны меры "Выручка" и "Заказы", вы можете использовать функции SUM и COUNT прямо внутри функции DIVIDE:
Средний чек = DIVIDE(SUM('Заказы'[Сумма чека]);COUNT('Заказы'[Товары]))