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