Using FILTER with VALUES(多行错误)



我正在使用《DAX权威指南》一书中提供的Contoso数据库学习DAX。

我试图理解过滤器上下文,我写了这个措施:

CountColor:= COUNT ( 'Product'[Color] )

我将其放入数据透视表中,其中'Product'[Color]被添加到rows部分,结果如下:

tbody> <<tr>黑色蓝色
Row Labels CountColor
Azure14
602
77

在本例中,VALUES获得一个不同的项列表,因此在下面:

CountColorValues:= CALCULATE (
COUNT ( 'Product'[Color] ),
FILTER ( 'Product',
'Product'[Color] = VALUES ( 'Product'[Color] )
)
)

'Product'[Color]试图等于一个包含{'Azure', 'Black', 'Blue'}的列表,所以实际上你试图使'Azure'的行等于一个包含不同值的表

要使其工作,需要将其更改为IN,是列表中的[color]值,而不是等于列表。

CountColorValues:= CALCULATE (
COUNT ( 'Product'[Color] ),
FILTER ( 'Product',
'Product'[Color] IN VALUES ( 'Product'[Color] )
)
)

这个问题应该是由Grand Total引起的。透视表的。这里的上下文是不同的,没有颜色过滤器存在,所以VALUES返回每个颜色,因此测量给出了提到的多行错误。

关闭数据透视表的汇总并不能解决问题,错误不断出现。

结论是,即使你愿意抑制它,你也必须把你的度量写得与总相容。

最新更新