Это можно сделать за несколько шагов.
Во-первых, нам нужен список дат, который будет помещен в наш слайсер. Если вы используете отдельную таблицу дат, это отличный источник. В противном случае вы можете создать его с помощью DAX, который будет содержать все даты в столбцах EnterTime и ExitTime.
Щелкните «Создать таблицу» на ленте моделирования. Вставьте следующий DAX:
DateListTable = UNION(
SELECTCOLUMNS('MyTable', "DateList", 'MyTable'[EnterTime]),
SELECTCOLUMNS('MyTable',"DateList", 'MyTable'[ExitTime])
)
Теперь у вас есть слайсер и визуальный элемент таблицы. Выберите срез, а затем перейдите на ленту форматирования (она доступна только тогда, когда выбран визуальный элемент. Используйте «Редактировать взаимодействия», чтобы отключить фильтрацию среза в таблице. Установите для него режим «Нет взаимодействия» (круг с диагональной линией через него).
Создать новую меру
ShowDate =
VAR SelectedDate = SELECTEDVALUE('DateListTable'[DateList], BLANK())
Return
if(SelectedDate >= Max('MyTable'[EnterTime ]) && SelectedDate <= max('MyTable'[ExitTime]), 1, 0)
Наконец, отфильтруйте визуальный элемент таблицы по новому показателю ShowDate, если он равен 1.
Итак, мы создаем независимый слайсер с полным списком дат. Но мы нарушаем любые отношения фильтров между ним и таблицей. Вместо этого мы используем SelectedValue для захвата значения, выбранного из фильтра, и создаем меру dax, которая показывает «1», когда значение в фильтре находится между EnterTime и временем выхода. Отфильтруйте эту меру dax, и мы получим желаемое поведение.
person
Ryan B.
schedule
30.07.2019