【问题标题】:Creating a calculated table by passing a measure or parameter通过传递度量或参数创建计算表
【发布时间】:2018-07-03 11:49:29
【问题描述】:

我有这样的数据需求,

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

【问题讨论】:

    标签: powerbi dax powerbi-desktop


    【解决方案1】:

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

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

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-06-11
      • 2021-09-07
      • 2023-02-23
      • 2017-10-16
      • 2016-02-24
      • 2012-10-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多