Сравнение версий

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.

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

Есть два способа рассчитать средний чек:

  • Просто разделить общую сумму продаж на количество уникальных номеров заказов.

  • Произвести расчеты с учетом ситуаций, когда несколько строк могут иметь один и тот же номер заказа (например, если каждая строка представляет разные продукты в одном заказе).

Второй вариант применяется в случаях, когда номер заказа не уникален, например, когда в одном заказе несколько позиций.

Рассмотрим оба варианта.

Вариант 1

Используемые данные:

Таблица фактов

factonlinesales

Используемые столбцы:

  • salesamount – сумма, которую заплатил клиент с учетом количества;

  • salesordernumber – содержит уникальные номера заказа.

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

Блок кода
SUM(factonlinesales[salesamount])/COUNT(factonlinesales[salesordernumber])

Данная формула делит общую сумму продаж (SUM(factonlinesales[salesamount])) на количество уникальных номеров заказов (COUNT(factonlinesales[salesordernumber])). Таким образом, мы получаем среднюю стоимость одного заказа.

Если разбить полученные данные, например, по брендам, то получим средний чек по каждому бренду:

средний-чек.png

Вариант 2

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

Используемые данные:

Таблица фактов

факты онлайн продаж
Используемые столбцы:

  • unitprice – цена за единицу товара;

  • salesquantity – количество проданного товара;

  • salesordernumber – номер заказа.

Для вычислений мы воспользуемся следующей формулой:

Блок кода
Средняя цена чека = DIVIDE (
                CALCULATE (
                    SUMX (
                        'факты онлайн продаж',
                        'факты онлайн продаж'[unitprice] * 'факты онлайн продаж'[salesquantity]
                    ),
                    REMOVEFILTERS ( 'факты онлайн продаж' ),
                    SUMMARIZE (
                        'факты онлайн продаж',
                        'факты онлайн продаж'[salesordernumber]
                    )
                ),
                CALCULATE (
                    DISTINCTCOUNT ( 'факты онлайн продаж'[salesordernumber] ),
                    REMOVEFILTERS ( 'факты онлайн продаж' ),
                    SUMMARIZE (
                        'факты онлайн продаж',
                        'факты онлайн продаж'[salesordernumber]
                    )
                )

Данная формула сначала вычисляет сумму произведений цены за единицу товара (unitprice) и количества проданных единиц (salesquantity) для всех строк таблицы факты онлайн продаж. Затем она удаляет фильтры (если они есть), примененные к таблице, и суммирует количество номеров заказов (salesordernumber).

После этого происходит деление на результат второго CALCULATE, который считает количество уникальных номеров заказов (с помощью DISTINCTCOUNT), исключая фильтры, и также суммирует номера заказов. Это и дает среднюю цену проданных товаров.

В математическом выражении это будет выглядеть следующим образом:
Средняя цена чека = Общая сумма продаж / Количество уникальных заказов


Смотрите также

📄 Поддерживаемые функции DAX
📄 Создание мер

Нужна дополнительная помощь?

Свяжитесь с технической поддержкой.