CALCULATE中的每个过滤器都是一个表。给定一个以上的过滤器(例如3个单独的过滤器),将生成3个表。
在对所有过滤器表进行“与”运算后,结果数据(在评估完所有过滤器之后)是否具有数据集中的所有行/列?CALCULATE如何应用所有过滤器?
过滤器将作为CALCULATE
执行的最后一步。当使用多个过滤器时,将对其执行“与”运算。生成的过滤器是现有过滤器的交集。
例如表达式
CALCULATE (
COUNTROWS ( Sales ),
Product[Color] = "Red",
Product[Brand] = "Contoso",
Customer[Continent] = "Asia"
)
将计算表中Sales
与之相关的行数,这些行的Products
颜色=红色AND品牌= Contoso并出售给居住在亚洲的客户。
为了更好地了解什么是过滤器表,我们必须记住,每个过滤器参数都由DAX扩展为其等效的FILTER表达式,如下所示:
CALCULATE (
COUNTROWS ( Sales ),
FILTER (
ALL ( Product[Color] ),
Product[Color] = "Red"
),
FILTER (
ALL ( Product[Brand] ),
Product[Brand] = "Contoso"
),
FILTER (
ALL ( Customer[Continent] ),
Customer[Continent] = "Asia"
)
)