CALCULATE的中FILTER,ALL,VALUES的组合应用可总结如下:
= CALCULATE(
COUNTROWS('Demo'),
FILTER( ALL('Demo'[Color]), 'Demo'[Color] = "Green" ) )
– ignores/replaces existing Color filters and sets a filter on Green
这将忽略/替换已存在的颜色筛选器并重新设置一个Color为Green的筛选器。
= CALCULATE(
COUNTROWS('Demo'),
FILTER( VALUES('Demo'[Color]), 'Demo'[Color] = "Green" ) )
– keeps existing Color filters and adds a further filter on Green
这将保持已存在的对Demo[Color]列的筛选,并对此列增加一个Color为Green的筛选器。
= CALCULATE(
COUNTROWS('Demo'),
FILTER( ALL('Demo'[Color]), 'Demo'[Color] = "Green" ),
VALUES('Demo'[Color]) )
– same as the previous expression (keeps existing Color filters)
– NOTE: the first filter would consider all the colors, but the second
– expression (VALUES) only consider the current selection and
– the two filters will be considered using an AND condition, thus
与上一个例子类似, FILTER( ALL(‘Demo’[Color]), ‘Demo’[Color] = “Green” )重置了一个Color为Green的筛选器,VALUES(‘Demo’[Color])保持了已有的筛选器,整个筛选结果是这两个筛选器的综合效果,即同时满足两处筛选的那些行。
= CALCULATE(
COUNTROWS('Demo'),
FILTER( ALL('Demo'), 'Demo'[Color] = "Green" ) )
– ignores/replaces filters on all Demo columns,
– and sets a filter on all columns (Name, Transport etc., not just Color)
– with rows that meet the condition
注意这里是:ALL(‘Demo’)而不是ALL(‘Demo’[Color]),即重置对于’Demo’的所有列筛选器,其中’Demo’[Color] =“Green”,其他列为无筛选器,在这种情况下选择符合筛选的所有行。