语法
移除指定表或列中的筛选器。
REMOVEFILTERS ( [<TableNameOrColumnName>], [ <ColumnName> [, <ColumnName> [, … ] ] ] )
REMOVEFILTERS 是 ALL 函数的别名,但它只能用作 CALCULATE 调节器,起到移除筛选器的作用,不能像 ALL 那样用作表表达式。
ALL 类型的有两种不同的语义,表表达式或 CALCULATE 调节器,这也使它们的作用在一些复杂公式中变的难以识别。为了使 ALL 函数的语义更为清晰,建议你在移除筛选器的时候始终使用 REMOVEFILTERS。
实例
DEFINE MEASURE FactInternetSales[TotalSales] = SUM(FactInternetSales[SalesAmount]) MEASURE FactInternetSales[%Sales] = DIVIDE([TotalSales], CALCULATE([TotalSales],REMOVEFILTERS())) EVALUATE SUMMARIZECOLUMNS( ROLLUPADDISSUBTOTAL(DimProductCategory[EnglishProductCategoryName], "IsGrandTotal"), "TotalSales", [TotalSales], "%Sales", [%Sales] ) ORDER BY [IsGrandTotal] DESC, [TotalSales] DESC
REMOVEFILTERS 移除了外部的所有筛选器,使得[%Sales]的分母可以正确计算总计值
DimProductCategory[EnglishProductCategoryName] | [IsGrandTotal] | [TotalSales] | [%Sales] |
---|---|---|---|
Row1 | True | 29358677.2207 | 1 |
Bikes | False | 28318144.6507 | 0.9645 |
Accessories | False | 700759.96 | 0.0238 |
Clothing | False | 339772.61 | 0.0116 |
老师好,我看本文中的实例,REMOVEFILTERS函数后面没带参数,不带参数的话,是清除整个模型(所有表)的筛选器吗?