Вычисление средней цены товара для каждого чека

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

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

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

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

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

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

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

  • productkey – уникальный идентификатор товара.

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

Средняя цена товара по чеку = DIVIDE(             CALCULATE(                 SUM('factonlinesales'[unitprice]),                 REMOVEFILTERS('factonlinesales'),                 SUMMARIZE('factonlinesales', 'factonlinesales'[salesordernumber])             ),             CALCULATE(                 COUNT('factonlinesales'[productkey]),                 REMOVEFILTERS('factonlinesales'),                 SUMMARIZE('factonlinesales', 'factonlinesales'[salesordernumber])             ), BLANK()         )

Данная формула состоит из нескольких шагов:

  1. Вычисляется сумма цен всех товаров в чеках без учета фильтров (REMOVEFILTERS). Для этого сначала применяется функция CALCULATE, которая вычисляет сумму цен всех товаров по каждому уникальному номеру заказа (salesordernumber) из таблицы factonlinesales, затем функция REMOVEFILTERS удаляет фильтры, которые могут изменить сумму цен, и возвращает данные без фильтров.

  2. Вычисляется количество товаров в каждом чеке без учета фильтров. Для этого также используется функция CALCULATE с аналогичными параметрами.

  3. Вычисляется средняя цена товара по каждому чеку с помощью функции DIVIDE. Результат первого шага делится на результат второго шага, чтобы получить среднюю цену товара по каждому чеку.

  4. Результат деления на ноль заменяется на пустую строку (BLANK()).

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


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

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

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

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