Как посчитать в Power BI среднее значение с помощью DAX

Как посчитать в Power BI среднее значение с помощью DAX

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

Среднее значение в визуальном элементе

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

Но данный способ берёт все строки столбца и вычисляет среднее арифметическое. Это неприменимо в категориальном анализе. 

Средняя выручка за день

Для расчёта средней выручки в день, нужно разделить сумму выручки на количество дней в периоде:

DIVIDE ( 
    SUM('Доставка'[Выручка]),
    DISTINCTCOUNT('Доставка'[Дата])
)

Если по выходным или иным дням не было продаж, к таблице фактов потребуется присоединить календарь. Таблица календаря содержит все значения дат и присоединена однонаправленной связью один-ко-многим:

Как создать правильный календарь мы описали в статье «Рабочие дни в Power BI».

Теперь мы можем посчитать среднее с учётом ВСЕХ дней за выбранный период - даже если в эти дни продаж не было:

DIVIDE(
    SUM('Доставка'[Выручка]),
    DISTINCTCOUNT('Calendar'[Date])
)

Ниже изображены три способа расчета средней выручки, которые мы рассмотрели. Почему же суммы в итоге разные? 

Средняя выручка получилась 63 тысячи рублей когда даты были взяты из календаря. В этом случае знаменатель содержал все дни, без пропусков.

Средняя выручка 84,52 тысячи была посчитана только по тем дням, когда были продажи, поэтому она отличается от первого значения.

И последний результат – 36,22 тысячи – это среднее от выручки на каждый заказ. Ведь таблица разбита не только по датам, но и по заказам!

Средняя выручка на клиента

Средняя выручка на клиента показывает сумму корзин всех клиентов, деленную на количество клиентов. Для этого нам нужно подтянуть в таблицу фактов ID клиента и присоединить справочник – расшифровщик ID:

После проработки модели прописываем меру расчёта средней выручки для покупателя:

DIVIDE(
    SUM('Доставка'[Выручка]),
    DISTINCTCOUNT('Доставка'[ID_Покупателя])
)

Благодаря связям между справочниками дат, покупателей и таблицей "Доставка", мы можем построить графики с детализацией до категорий:

Почему средние значения по клиентам и датам так разнятся? Все достаточно прозаично: при разбивке по клиентам сумма выручки по Гришину делится на количество клиентов, то есть на единицу. При распределении показателя по датам, мы учитываем сразу две разбивки - и по клиентам (зашито в формуле), и по датам (применяется на графике). В результате средние значения по датам получаются сильно ниже.

Анонсы всех видео, статей и полезностей - в нашем Telegram-канале🔥
Присоединяйтесь, обсуждайте и автоматизируйте!

Средний чек

Суть среднего чека заключается в том, что считается усредненная выручка за покупку/заказ. То есть, выручка, деленная на количество покупок/заказов за период:

DIVIDE(
    SUM('Доставка'[Выручка]),
    DISTINCTCOUNT('Доставка'[ID_Заказ])
)

Среднее время доставки

Для начала необходимо создать столбец, который с помощью оператора DATEDIFF ( ) рассчитает разницу в минутах между отправкой и доставкой заказа:

А для применения среднего значения в визуальных элементах посчитаем следующую меру:

AVERAGE('Доставка'[Доставка в минутах])

Когда мы визуализируем данную формулу, то увидим закономерность - пока время доставки растет, средний чек падает:

В нашем случае это просто пример, но в реальном бизнесе это уже может натолкнуть на какие-то выводы.

Заключение

В этой статье мы рассмотрели наиболее частые расчёты средних значений. Помните, что вычисление среднего всегда зависит от параметра, по которому вы хотите его вычислить. Параметром может быть дата, клиент, заказ, и так далее. 

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

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

Комментарии