Как посчитать средний чек...?
- Что сложного посчитать средний чек? И что за многоточие в заголовке?
Действительно, если говорить просто о среднем чеке, то вычислить его значение совсем не сложно: считаем сумму продаж, считаем количество чеков и делим одно на другое.
Кстати, про некоторые нюансы расчёта среднего можно почитать в статье "PowerBI - расчёт среднего с помощью DAX"
А теперь вопрос, который скрыт за многоточием: Как посчитать средний чек только по тем чекам, в которые входит выбранный товар?
В примере выше всего 3 чека на сумму 170, а значит средний чек будет равен 56,66. Но, если мы хотим посчитать среднее значение по чекам, в которых была конфета, а таких чеков было 2 на сумму 120, то мы получим средний чек равный 60.
Обратимся к уже знакомому набору данных:
Создадим две простые меры, а также срез для выбора товара, относительно которого будем считать, и визуализацию в виде таблицы:
Добавим меру, которая считает средний чек:
Как видно на скриншоте, средний чек, как и сумма заказов, и количество заказов, рассчитывается в контексте фильтра по товару "AWC Logo Cap". То есть в знаменателе находится верное число - количество заказов, в которых присутствует данный товар, а вот в числителе сумма заказов неверная, так как не учитываются прочие товары, которые были в этих заказах.
Создадим новую меру, чтобы рассчитать верную сумму заказов:
- С помощью функции ALL сбрасываются все фильтры с таблицы Products (Товаров)
- С помощью функции VALUES сохраняются фильтры по номеру заказа
Для тех, кто только начинает изучать DAX или ещё плохо разбирается в том как работают контексты, поясню, что на аргументы фильтра (всё что указано после запятой после первого аргумента - выражения или меры) функции CALCULATE, также действуют внешние фильтры. Таким образом, в ALL мы получаем список всех товаров, а выражение VALUES(Sales[OrderNumber]) сначала фильтруется значением среза по товарам, так как соответствующий фильтр приходит по связи из таблицы Products в таблицу Sales. Затем полученная таблица применяется в качестве фильтра к выражению [Sum Orders Qty]. При этом оба выражения фильтра действуют как логическое И.
Осталось создать меру, которая посчитает средний чек только по тем чекам, в которые входит выбранный товар:
Как видите, всё достаточно просто, но вот если вы захотите посчитать средний чек только по тем чекам, в которые входят все 2, 3...N выбранных товаров, то это будет задача уже посложнее и тема другой статьи)).
Ниже отчёт, чтобы посмотреть и ссылка, чтобы скачать.