通过传递度量或参数来创建计算表

时间:2018-07-03 11:49:29

标签: powerbi dax powerbi-desktop

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

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时,它会失败。

1 个答案:

答案 0 :(得分:4)

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

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

Months[Months]列用于切片器,然后创建一个引用该切片的度量以过滤表/矩阵的外观。

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

然后在“可视级过滤器”框中使用该度量:

Output