
Мелкие радости - управление раcчетом подытогов
Рвав-рвав, сегодня я – собака-управляка!
Перед вами – 10-я заметка из нашего цикла “Мелкие радости”, ниже мы рассмотрим такую задачу, как вывод разных составляющих при расчете подитогов в матрице, в зависимости от уровня.
Пример:
В качестве исходных данных имеется набор, содержащий товарные позиции, а именно группу товаров, бренд и цену:
Задача:
Построить матрицу таким образом, чтобы в зависимости от уровня подитога выводился определенный расчет, например, обычная сумма или средняя.
Процесс разработки:
Для начала необходимо построить обычную матрицу с построчной группировкой по группе товара и бренду:
После этого необходимо написать меру, которая бы имела в себе проверку на уровень данных, а также указание на применение необходимых расчетов:
Расчет по уровням =
VAR _Average =
AVERAGE ( 'Таблица'[Цена] )
VAR _Amount =
SUM ( 'Таблица'[Цена] )
RETURN
SWITCH (
TRUE (),
ISINSCOPE ( 'Таблица'[Бренд] ), _Amount,
ISINSCOPE ( 'Таблица'[Группа] ), _Average,
FORMAT ( _Amount, "## ### ₽" )
)
Рвав-рвав, в данной формуле идет раздельный расчет с проверкой уровня при помощи функции ISINSCOPE, а также добавлено форматирование общего итога (для демонстрации возможности отдельного управления).
Формула, надо сказать, простая, главное начать думать “в правильную сторону”, с чем могут быть определенные проблемы, поскольку сначала собака Смайл раздумывал о том, как отделить общий итог от промежуточного.
Проверить получившийся результат:
Рвав-рвав, собственно, на этом все.
Ваш Смайл
P.S. Рвав-рвав, после публикации обнаружился один тонкий момент при тестировании на других данных (несколько строк одного бренда): важен порядок проверки уровней, а именно, считать надо “снизу-вверх”.