Страницы: 1
RSS
Создание динамических мер в DAX, Использование срезов для возможности организации динамических мер в Power Pilot
 

Всем добрый вечер,

Всё работает, всё хорошо, но хотел посоветоваться, оптимально ли это и не вылезут какие-нибудь подводные камни в дальнейшем. // или есть проще :)

Задача создать динамический переключатель мер для работы сводных таблиц из Power Pilot

Если кратко, то есть с десяток мер (которые что-то рассчитывают) типа

YTD_мера_1

YTD_мера_2

....

YTD_мера_10

//YTD- просто маркер периода

Аналогичным образом ещё по десятку мер, соответственно для периодов МАТ, MQT и MMT

Как делал:

Создал отдельную таблицу с полями

YTD

MAT

MQT

MMT

и вывел её в срез, привязав к своей сводной таблице.

После чего сделал объединённую меру, по типу:

Мера_1:=SWITCH(VALUES(MeasureList[Measure]);"YTD";[YTD_мера_1];"MAT";[MAT_мера_1];"MQT";[MQT_мера_1];"MMT";[MMT_мера_1];"Non correct filter")

Всё переключается и считается (на сегодня, количество строк в базе ~700K)

То есть схема рабочая.

//основное идею почерпнул из видео "Меры DAX с нестандартными реакциями на фильтры и срезы в отчетах Power BI" (by Maxim Zelensky), но у меня пока только сводные таблицы, без Power BI

Из вопросов:

1. Может уже кто-то сталкивался с решением подобной задачи и видит возможные подводные камни у меня в дальнейшем. Ну или есть более "красивые" решения.

2. И может кто посоветует (у меня не получилось сделать), через срезы, что бы можно было скрывать не нужные столбцы (меры) целиком в сводной таблице.

(пробовал решение из видео, но оно у меня почему-то работает только в части скрытия самих данных, но не столбцов полностью. Данный метод отлично работает для графиков, а для сводной таблицы что-то у меня не получается)

 
Добрый день.
1. По SWITCH - вполне рабочая схема.
В принципе, можно сделать еще один срез по _1, _2, _3 и т.п. - то есть тому, что идет после YTD, MAT, и так далее, и также запихнуть его проверку в SWITCH. Тогда обработка обоих срезов (по типу периода и по типу расчета) будет проводиться одной мерой. Но, учитывая единственный нюанс: форматирование результата всегда будет такое же, как у [Мера_1] (в которой SWITCH). Т.е. если один показатель в рублях, другой в процентах, то так некрасиво будет.
Более детально сказать сложно, возможно, и есть резервы для улучшения, но надо смотреть на модель.

2. Столбец с мерой, насколько известно мне, не скрывается даже если там все значения пустые. Это можно сделать руками, одноразово через "Наборы", но не по срезу.
Может, кто-то знает решение - будет любопытно.
Единственный известный мне вариант - это делать специальную таблицу для заголовков столбцов и учитывать текущий столбец в мере. Тогда мера получится с "ручным" учетом столбца в качестве фильтра для расчета. Это трудоемко, работает медленнее, и нужно использовать только в том случае, если по-другому ну никак таблицы не построить и это требование пользователя/заказчика
F1 творит чудеса
 

Максим, большое спасибо за комментарии, особенно касательно использования SWITCH - если нет больших "засад", то буду использовать у себя как "типовое" решение //с нюансом уже столкнулся :)

Пока, так как у меня опыта не много в DAX, и так как у меня только сводные таблицы, то решил "выкрутиться" следующим образом:

А) Сделал динамические названия заголовков

1. На строке, над заголовком, внёс новые названия как объединение старого названия + данные из срезов.

2. Скрыл строку заголовков

Вроде получилось просто (не пришлось править меры) и прозрачно

//из бонуса, можно сделать ещё несколько подобных строк названий, но на другом языке (например, английском/немецком)

Б) Выгнал/упорядочил меры и сделал группировку колонок (или можно просто скрыть)

//это мне показалось проще/надёжнее, чем давать «пользователям» самим настраивать вручную поля сводной таблицы... бережёного бог бережёт )

Страницы: 1
Наверх