【问题标题】:PowerBI Filter Context ProblemsPowerBI 筛选器上下文问题
【发布时间】:2021-01-11 22:58:24
【问题描述】:

我在 Power BI 中设置了一个度量值,但它的行为与我预期的不一样,我正试图找出这里缺少什么。我定义的度量相当简单,如下所示。

Test Filter Removal = 
CALCULATE(
    SELECTEDVALUE('Report Options'[Operation Costs], "Costs "),
    REMOVEFILTERS('Report Options'),
    FILTER('Report Options', 'Report Options'[Operation Costs] = "Costs at Current Year Rates")
)

“报告选项”[运营成本] 表中有 2 个选项“按实际年费率计算的成本”和“按当前年费率计算的成本”。此报告页面上的上下文是已选择按实际年费率计算的成本,但对于此度量,我希望它按当前年费率报告成本。

完整的度量比这个更复杂,但是更复杂的度量的整个问题归结为在这个例子中这部分度量返回“成本”,这是在这个例子中使用的默认值SelectedValue 函数。

对此我不明白的是,指定的过滤器应该专门将其设置为按当前年费率计算的成本。我确定问题与上下文有关,但我没有看到它是什么。

【问题讨论】:

    标签: powerbi dax


    【解决方案1】:

    因为 CALCULATE 中的所有过滤器参数都使用 AND 逻辑进行评估,所以 REMOVEFILTERS 在这里实际上并没有做任何工作,因为您的 FILTER 参数是该更大表的子集。

    我怀疑你想要更像这样的东西:

    Test Filter Removal = 
    CALCULATE (
        SELECTEDVALUE ( 'Report Options'[Operation Costs], "Costs " ),
        'Report Options'[Operation Costs] = "Costs at Current Year Rates"
    )
    

    相当于

    Test Filter Removal = 
    CALCULATE (
        SELECTEDVALUE ( 'Report Options'[Operation Costs], "Costs " ),
        FILTER (
            ALL ( 'Report Options'[Operation Costs] ),
            'Report Options'[Operation Costs] = "Costs at Current Year Rates"
        )
    )
    

    请注意,如果没有 ALL(就像在您的 DAX 中一样),表会在过滤器上下文中进行评估,因此会受到切片器的影响,因此当切片器不包含该列的 "Costs at Current Year Rates" 时,会返回一个空表。

    【讨论】:

      猜你喜欢
      • 2022-10-04
      • 1970-01-01
      • 1970-01-01
      • 2023-03-14
      • 1970-01-01
      • 2021-05-18
      • 2021-09-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多