1

我有一个要求,我有这样的数据,

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)))

SelectedValue但是当我尝试通过使用函数的度量来动态传递 2 的值时,它会失败。

4

1 回答 1

4

计算列和计算表不能引用切片器值,因为它们仅在您加载数据时计算。

如果您想将此过滤应用于视觉对象,我建议为您的切片器创建一个单独的表。例如,您也可以使用Months = GENERATESERIES(1,12)然后重命名该列Months

使用Months[Months]切片器的列,然后创建一个引用它的度量来过滤表/矩阵视觉对象。

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

然后在您的视觉级别过滤器框中使用该度量:

输出

于 2018-07-03T16:35:03.733 回答