通过传递度量或参数创建计算的 table

Creating a calculated table by passing a measure or parameter

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

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

我正在尝试为用户提供一个切片器,以 select 从上个月算起所需的月数。

为此,我使用了这样的计算列:

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

用户select来自切片器的月份年份。

比如他selects 2时,我想在table.

中显示最近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 时它失败了。

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

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

为您的切片器使用 Months[Months] 列,然后创建一个引用它的度量来过滤您的 table/matrix 视觉效果。

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

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