← К списку задач
·Сложный·~12 мин

DAX: доля выручки категории от общего итога

Сценарий

В отчёте Power BI таблица orders содержит поля amount и внешний ключ product_id. Таблица products содержит поле category. Обе таблицы связаны.

В матрице отчёта по строкам расположены категории товаров. Мера Выручка = SUM(orders[amount]) уже создана и показывает выручку по каждой категории с учётом фильтра.

Тебе нужна мера «Доля выручки», которая показывает, какой процент от общей выручки приходится на каждую категорию.

Задача

  1. Напиши DAX-формулу для меры «Доля выручки».
  2. Объясни, зачем здесь нужна функция ALL().

Ожидаемый ответ

Формула:

Доля выручки =
DIVIDE(
    [Выручка],
    CALCULATE([Выручка], ALL(products[category]))
)

Как это работает:

выражениечто делает
[Выручка]выручка текущей категории (с фильтром из контекста строки)
ALL(products[category])снимает фильтр по полю category — берёт все категории
CALCULATE([Выручка], ALL(...))выручка всех категорий = общий итог
DIVIDE(числитель, знаменатель)делит, безопасно обрабатывая деление на ноль

Зачем ALL(): Без ALL() знаменатель тоже фильтровался бы по текущей категории — и каждая строка показывала бы 100%. ALL() явно говорит DAX: «игнорируй фильтр по категории при вычислении знаменателя».

Пример результата в матрице:

категорияВыручка (₸)Доля выручки
Электроника1 200 00048%
Одежда800 00032%
Продукты500 00020%
Итого2 500 000100%
Эта задача — на изучение. Sandbox для появится в следующей фазе.