微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Power BI DAX迭代器函数转义上下文

如何解决Power BI DAX迭代器函数转义上下文

我倾向于Power BI DAX迭代器函数,当使用“度量”作为迭代器函数的表达式时感到困惑:

假设我们首先定义一个度量:

Quantity = SUM(Sales[Order Quantity])

然后以下两种措施未返回相同的结果:

Product Quantity Rank = 
RANKX(
    ALL('Product'[Product]),[Quantity]
)

Product Quantity Rank too = 
RANKX(
    ALL('Product'[Product]),SUM(Sales[Order Quantity])
)

enter image description here

第二个度量转义了行上下文。但是为什么呢?

解决方法

要使第二个指标正确无误,您必须按如下所示对汇总应用CALCULATE-

Product Quantity Rank too = 
RANKX(
    ALL('Product'[Product]),CALCULATE(SUM(Sales[Order Quantity]))
)

可以找到很好的解释HERE

,

通过查找不同的材料,最终发现这是一个“上下文过渡”问题。

SUM(Sales[Order Quantity])

Product Quantity Rank too = 
RANKX(
    ALL('Product'[Product]),SUM(Sales[Order Quantity])
)

实际上汇总了销售表中的每个“订单数量”。

使用CALCULATE函数时,它将行上下文值应用为过滤器,称为“上下文转换”。

如果在以行上下文评估的表达式中引用度量,则上下文转换是自动的。因此,您无需将度量引用传递给CALCULATE函数。

因此,两者

Product Quantity Rank = 
RANKX(
    ALL('Product'[Product]),[Quantity]
)

Product Quantity Rank too = 
RANKX(
    ALL('Product'[Product]),CALCULATE(SUM(Sales[Order Quantity]))
)

有效

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。