【问题标题】:PowerBI DAX - Using a measure as a filter within a CALCULATE functionPowerBI DAX - 在 CALCULATE 函数中使用度量作为过滤器
【发布时间】:2019-10-24 10:22:42
【问题描述】:

我想在 PowerBI 中创建一个 DAX 度量,以提供特定日期的销售汇总。 我需要由日期切片器控制该日期。特别是切片器上的最大日期。

我希望这是一个Calculate() 函数。因此,如果它是用日期硬编码的,则类似于以下内容。

=CALCULATE(SUM(FactInternetSales2[Sales]), DimDate2[Dim Date] = DATE(2018, 06, 18))

但我需要 Calculate() 函数的过滤器组件(即 DimDate2[Dim Date] = DATE(2018,06,18)) 从最大日期开始动态填充日期切片器。我知道,但是一个度量不能用作计算函数中的过滤器 - 所以我不能创建一个如下的度量来识别最大日期

=LASTDATE(DimDate2[Dim Date]) 

然后在Calculate()等函数中使用

=CALCULATE(SUM(FactInternetSales2[Sales]), DimDate2[Dim Date] = LASTDATE(DimDate2[Dim Date])

谁能概述我如何使用切片器中的最大日期来过滤Calculate() 函数,或获得相同的结果?

我的工作文件的副本位于此处 https://drive.google.com/file/d/1d1JiyPm1jOD9XkVqv3Q5pm0vk1FMotH9/view?usp=sharing

干杯 史蒂夫

【问题讨论】:

    标签: powerbi dax


    【解决方案1】:

    您可以将参数值读入变量中。

    SalesSum =
    VAR EndDate = LASTDATE ( DimDate2[Dim Date] )
    RETURN
        CALCULATE ( SUM ( FactInternetSales2[Sales] ), DimDate2[Dim Date] = EndDate )
    

    【讨论】:

    • 谢谢亚历克西斯——正是我所追求的!
    【解决方案2】:

    您可以将Calculate() 函数与这样的过滤器一起使用:

    =CALCULATE(SUM(Table1[SalesValue]), FILTER(Table1, Table1[Year] = 2019))
    

    要从切片器获取值,请转到 Modeling > New Parameter。在这里您可以指定您的参数需求并点击OK。现在,您在字段窗格中为该参数创建了一个新表和列。现在只需使用以下代码在此列上引用:

    =SELECTEDVALUE(ParameterTable[ParameterValue])
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-08-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多