Синхронизация срезов по разным измерениям
#PowerBI предоставляет множество возможностей для создания отчётов. И каждый месяц, с каждым обновлением их становится всё больше. Но далеко не все мы используем или даже не подозреваем о них. Например, вы скорее всего знаете, что срезы, которые используются для фильтрации, можно синхронизировать между страницами. Но многие ли знают, что срезы можно синхронизировать внутри одной группы визуальных элементов? И как раз это свойство можно использовать для решения следующего сценария:
Имеются два среза: Категория и Цвет. Одна категория может включать в себя несколько цветов и один цвет может входить в несколько категорий. Необходимо, чтобы при изменении выбора в одном срезе сбрасывался фильтр в другом и была возможность выбрать непересекающееся значение.
При выборе цвета Grey происходит фильтрация среза Категория, в котором остается только одно значение, как и в таблице:
Это происходит потому, что и Категория, и Цвет являются атрибутами товара и находятся в одном справочнике:
Так как срез Цвет фильтрует срез Категория, пользователь не может выбрать другую категорию, пока не сбросит фильтр по цвету. Мы можем изменить взаимодействие между срезами, чтобы они не фильтровали друг друга, а только таблицу:
Но тут возникает ситуация, когда фильтр одного среза противоречит фильтру другого из-за чего в таблице возвращается пустота:
Чтобы исправить выше указанные недочёты, воспользуемся свойством синхронизации срезов в группе.
Для создания группы выберем оба среза, нажмём правой клавишей мыши и выберем "Группировать"
В панели Выбор можно переименовать созданную группу или добавить в неё другие визуальные элементы
Затем открываем панель синхронизации (вкладка "Представление" - "Синхронизировать срезы"). Выбираем срез, в панели синхронизации раскрываем дополнительные параметры и указываем название группы, в которой находятся срезы
Протестируем взаимодействие выбрав в срезе Цвет значение Grey
Как видно - результат не тот, который мы ожидали: в таблице пусто, а в срезе Категория появилось значение Grey. Такой категории у нас естественно нет, поэтому в таблице мы получаем пустоту.
Самое близкое сравнение, которое мне приходит для такой синхронизации - это UNION, когда один набор объединяется с другим (друг под друга). Хотя мы ожидаем, что наборы будут связаны (JOIN) друг с другом, то есть будут рядом, как это выглядит в таблице.
Чтобы добиться такого поведения, пойдём на небольшую хитрость - добавим в срезы второе измерение, получив иерархический срез, но перед добавлением необходимо снять галочку "Синхронизировать изменение полей с другими срезами":
Протестируем взаимодействие снова выбрав в срезе Цвет значение Grey
На этот раз и в таблице, и в срезе Категория мы видим ожидаемый результат. Выберем категорию Bikes
Как видно в таблице осталась только выбранная категория, а фильтр в срезе Цвет сбросился. Единственный момент, который остался - это "шевроны", которые дают пользователю возможность развернуть иерархию. Здесь всё зависит от потребностей и желаний. Можно оставить эту возможность, а можно аккуратно добавить сверху прямоугольник, который закроет "шевроны" и возможность развернуть иерархию. Главное правильно настроить порядок слоёв.
Как всегда отчёт, чтобы посмотреть
И файл, чтобы "пощупать"