首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Power BI DAX迭代器函数转义上下文

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

Stack Overflow用户
提问于 2020-08-28 11:26:49
回答 2查看 101关注 0票数 1

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

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

代码语言:javascript
复制
Quantity = SUM(Sales[Order Quantity])

那么以下两个度量返回的结果不是相同的:

代码语言:javascript
复制
Product Quantity Rank = 
RANKX(
    ALL('Product'[Product]),
    [Quantity]
)

&

代码语言:javascript
复制
Product Quantity Rank too = 
RANKX(
    ALL('Product'[Product]),
    SUM(Sales[Order Quantity])
)

​

​

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-08-28 15:36:44

要使第二个度量正确,您必须对聚合应用计算,如下所示-

代码语言:javascript
复制
Product Quantity Rank too = 
RANKX(
    ALL('Product'[Product]),
    CALCULATE(SUM(Sales[Order Quantity]))
)

可以找到一个非常好的解释:HERE

票数 1
EN

Stack Overflow用户

发布于 2020-09-03 09:53:51

通过查阅不同的材料,最终得出这是一个“语境转换”的问题。

代码语言:javascript
复制
SUM(Sales[Order Quantity])

在……里面

代码语言:javascript
复制
Product Quantity Rank too = 
RANKX(
    ALL('Product'[Product]),
    SUM(Sales[Order Quantity])
)

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

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

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

因此,两者

代码语言:javascript
复制
Product Quantity Rank = 
RANKX(
    ALL('Product'[Product]),
    [Quantity]
)

和

代码语言:javascript
复制
Product Quantity Rank too = 
RANKX(
    ALL('Product'[Product]),
    CALCULATE(SUM(Sales[Order Quantity]))
)

作品

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63627015

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档