AverageX函数中的Dax All函数



有人能解释一下下面ALL函数在函数内部的作用吗。它是否建立了"销售"表和"产品"表之间的关系?

_Sales by Product Column Chart Colour = 
var avgSales = AVERAGEX(
ALL('Product'[Product])
, [Sales Amount]
)
return
IF([Sales Amount] < avgSales, "Dark Blue")

好。ALL是一个通用的DAX函数。它既可以用作表函数,也可以用作计算修饰符。让我们分析一下ALL的行为,首先检查您的代码:

1( (作为一个表函数,类似于您的代码

Sales by Product Column Chart Colour = 
var avgSales = AVERAGEX(
ALL('Product'[Product])      
,[Sales Amount]
)
RETURN
IF([Sales Amount] < avgSales, "Dark Blue")   

它返回Product表中[Product]列的所有唯一值,并对每一行评估销售额度量。它忽略产品列上的过滤器,并计算所有产品的总体平均值。你知道剩下的从if开始。

2( (作为计算修改器,如以下度量:

Test_Measure = 
CALCULATE(
SUM(Sales[Amount]),
ALL(Product)
)

它删除了产品表所有列上的所有筛选器,并直接影响筛选器上下文。

总之,在哪里使用ALL很重要。根据不同,它的反应也不同。

我希望这足以让你理解它的行为。

最新更新