Цитата |
---|
написал: К сожалению нужно формулой (( |
Код |
---|
ТОП N Продажи =
VAR N = 3
VAR ТекущееПодразделение = SELECTEDVALUE(Подразделение[Подразделение])
VAR ТопТоваровТаблица =
TOPN(
N,
SUMMARIZE(
FILTER(Продажи, Продажи[Подразделение] = ТекущееПодразделение),
Продукция[Товар],
"СуммаПродаж", SUM(Продажи[Сумма])
),
[СуммаПродаж], DESC
)
RETURN
CALCULATE(
SUM(Продажи[Сумма]),
KEEPFILTERS(ТопТоваровТаблица)
) |
Эта мера работает следующим образом:
Определяет количество товаров в топе (N = 3)
Получает текущее выбранное подразделение
Создает таблицу с топ N товарами для этого подразделения, сортируя их по сумме продаж
Возвращает сумму продаж только для этих топ N товаров
Если также нужно отображать категорию "Остальные" для товаров, не попавших в топ, можно использовать следующую меру:
Код |
---|
ТОП N с Остальными =
VAR N = 3 // Количество товаров в топе
VAR ТекущееПодразделение = SELECTEDVALUE(Подразделение[Подразделение])
VAR ТопТоваровТаблица =
TOPN(
N,
SUMMARIZE(
FILTER(Продажи, Продажи[Подразделение] = ТекущееПодразделение),
Продукция[Товар],
"СуммаПродаж", SUM(Продажи[Сумма])
),
[СуммаПродаж], DESC
)
VAR ТопПродажи =
CALCULATE(
SUM(Продажи[Сумма]),
KEEPFILTERS(ТопТоваровТаблица)
)
VAR ОбщиеПродажи =
CALCULATE(
SUM(Продажи[Сумма]),
FILTER(Продажи, Продажи[Подразделение] = ТекущееПодразделение)
)
VAR ОстальныеПродажи = ОбщиеПродажи - ТопПродажи
VAR ТекущийТовар = SELECTEDVALUE(Продукция[Товар])
RETURN
IF(
CONTAINS(ТопТоваровТаблица, Продукция[Товар], ТекущийТовар),
ТопПродажи,
IF(ТекущийТовар = "Остальные", ОстальныеПродажи, BLANK())
) |
Чтобы добавить фильтр по дате, можно модифицировать меру, добавив условие по дате в
FILTER:
Код |
---|
ТОП N Продажи по Периоду =
VAR N = 3
VAR НачалоПериода = DATE(2025, 1, 1) // Начало периода
VAR КонецПериода = DATE(2025, 1, 31) // Конец периода
VAR ТекущееПодразделение = SELECTEDVALUE(Подразделение[Подразделение])
VAR ТопТоваровТаблица =
TOPN(
N,
SUMMARIZE(
FILTER(
Продажи,
Продажи[Подразделение] = ТекущееПодразделение &&
Продажи[Дата] >= НачалоПериода &&
Продажи[Дата] <= КонецПериода
),
Продукция[Товар],
"СуммаПродаж", SUM(Продажи[Сумма])
),
[СуммаПродаж], DESC
)
RETURN
CALCULATE(
SUM(Продажи[Сумма]),
KEEPFILTERS(ТопТоваровТаблица),
Продажи[Дата] >= НачалоПериода && Продажи[Дата] <= КонецПериода
) |