首页 > 解决方案 > 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])
)

在此处输入图像描述

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

标签: powerbi

解决方案


通过查找不同的材料,终于弄清楚这是一个“上下文过渡”的问题。

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]))
)

作品


推荐阅读