FILTER

返回一个表,用于表示另一个表或表达式的子集。

语法

FILTER(<table>,<filter>)  

parameters

术语定义
要筛选的表。 table 还可以是生成表的表达式。
filter要为表的每一行计算的布尔表达式。 例如,[Amount] > 0[Region] = "France"

返回值

只包含已筛选行的表。

备注

  • 可使用 FILTER 减少表中要使用的行数,并且在计算中仅使用特定数据。 FILTER 不可单独使用,而是用作嵌入到需要表作为参数的其他函数中的函数。

  • 有关使用 FILTER 时的最佳做法,请参阅避免使用 FILTER 作为筛选器参数

使用 COUNTROWS 而不是 DAX 中的 COUNT

  • 在已计算的列或行级安全性 (RLS) 规则中使用时,不支持在 DirectQuery 模式下使用此函数。

示例

下面的示例通过使用筛选出美国销售额的度量值,然后按日历年和产品类别进行切片,从而创建美国以外地区 Internet 销售额报表。 若要创建此度量值,请使用 Sales Territory 来筛选表 Internet Sales USD,然后在 SUMX 函数中使用筛选后的表。

在此示例中,表达式:

FILTER('InternetSales_USD', RELATED('SalesTerritory'[SalesTerritoryCountry])<>"United States")

返回一个表,该表是 Internet Sales 减去属于美国销售区域的所有行后的子集。 RELATED 函数用于将 Internet Sales 表中的 Territory 键链接到 SalesTerritory 表中的 SalesTerritoryCountry。

下表说明“非美国 Internet 销售额”度量值的概念证明,在下面的代码部分中提供了该度量值的公式。 该表将所有 Internet 销售额与美国以外地区 Internet 销售额进行比较,通过从计算中排除美国销售额来表明筛选表达式是有效的。

要重新创建此表,请将字段 SalesTerritoryCountry 添加到报表或数据透视表的“行标签”区域。

表 1. 比较美国与所有其他地区的总销售额

行标签Internet Sales非美国 Internet 销售额
澳大利亚$4,999,021.84$4,999,021.84
加拿大$1,343,109.10$1,343,109.10
法国$2,490,944.57$2,490,944.57
德国$2,775,195.60$2,775,195.60
英国$5,057,076.55$5,057,076.55
美国$9,389,479.79
总计$26,054,827.45$16,665,347.67

最终的报表显示通过使用“非美国 Internet 销售额”度量值创建数据透视表的结果。 请将字段 CalendarYear 添加到数据透视表的“行标签”区域,然后将字段 ProductCategoryName 添加到“列标签”区域

表 2. 按产品类别比较美国以外地区销售额

行标签AccessoriesBikesClothing总计
2005$1,526,481.95$1,526,481.95
2006$3,554,744.04$3,554,744.04
2007$156,480.18$5,640,106.05$70,142.77$5,866,729.00
2008$228,159.45$5,386,558.19$102,675.04$5,717,392.68
总计$384,639.63$16,107,890.23$172,817.81$16,665,347.67
SUMX(FILTER('InternetSales_USD', RELATED('SalesTerritory'[SalesTerritoryCountry])<>"United States")       ,'InternetSales_USD'[SalesAmount_USD])  

请参阅

筛选器函数
ALL 函数
ALLEXCEPT 函数

results matching ""

    No results matching ""