Файлы к уроку:
Описание
Допустим вы вычислили сумму продаж каждой категории. Теперь вам бы хотелось, чтобы у вас был фильтр, который бы оставлял на экране только, например, Топ-10 категорий по продажам, а остальные скрывал.

Решение
Сначала мы создадим несвязанную таблицу и добавим ее в модель данных.

Делее создадим меру, которая вычислит рейтинг каждой категории.
Потом мы создадим меру, которая будет определять выбрано ли в фильтре одно значение или более одного.
Следующей мерой мы проверим входит ли выбранное значение в Топ N или нет.
И наконец мы добавим меру, в которой вычислим суммы продаж только для категорий, входящих в Топ N.
Примененные функции
- SUM
- HASONEVALUE
- ALL
- RANKX
Код
Вычисляем рейтинг:
=
RANKX ( ALL ( 'Orders'[Sub-Category] ); [Сумма продаж];; DESC; DENSE )
Проверяем выбрано ли только одно значение:
=
HASONEVALUE('Топ'[Топ]) * 1
Входит ли рейтинг в Топ N:
=
IF(MAX('Топ'[Топ]) >= [Rank];1;0)
Сумма продаж только для Топ N:
=
IF([Одно значение]=0;
[Сумма продаж];
IF([Входит в Топ N];
[Сумма продаж]) )