有人能解释一下下面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很重要。根据不同,它的反应也不同。
我希望这足以让你理解它的行为。