Создание вычисляемой таблицы путем передачи меры или параметра - PullRequest
0 голосов
/ 03 июля 2018

У меня есть требование, когда у меня есть такие данные,

Date      Name  Age 
1-1-2018  A     1
2-2-2018  B     1
3-3-2018  B     1
6-6-2018  C     2
7-7-2018  B     6

Я пытаюсь дать пользователю срез для выбора необходимого количества месяцев по сравнению с предыдущим месяцем.

Для этого я использую вычисляемый столбец, подобный этому:

Month Year = DATEDIFF((Table1[Date]), TODAY(), MONTH) + 1

Таким образом, данные изменяются на что-то вроде этого:

Date      Name  Age  MonthYear
1-1-2018  A     1    7
2-2-2018  B     1    6
3-3-2018  B     1    5
6-6-2018  C     2    2
7-7-2018  B     6    1

Пользователь выбирает год месяца на слайсере.

Например, когда он выбирает 2, я хочу отобразить записи последних 2 месяцев в таблице.

Ожидаемый результат:

Date      Name  Age  
6-6-2018  C     2   
7-7-2018  B     6   

Это работает для меня, если я жестко закодирую это так:

Calculated Table = CALCULATETABLE(Table1,
                       FILTER(Table1, OR(Table1[MonthYear] > 2, Table1[MonthYear] = 2)))

Но происходит сбой, когда я пытаюсь передать значение вместо 2 динамически через меру, используя функцию SelectedValue.

1 Ответ

0 голосов
/ 03 июля 2018

Вычисляемые столбцы и вычисляемые таблицы не могут ссылаться на значение среза, поскольку они вычисляются только при загрузке данных.

Если вы хотите применить эту фильтрацию к визуалу, я бы предложил создать отдельную таблицу для вашего слайсера. Например, вы можете использовать Months = GENERATESERIES(1,12), а затем переименовать столбец Months.

Используйте столбец Months[Months] для своего слайсера, а затем создайте меру, которая ссылается на нее, чтобы отфильтровать визуальную таблицу / матрицу.

Filter = IF(SELECTEDVALUE(Months[Months]) >= MAX(Table1[Month Year]), 1, 0)

Затем используйте эту меру в окне фильтров визуального уровня:

Output

...