FILTER

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

语法

FILTER(<table>,<filter>)

参数

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

返回值

只包含筛选行的表。

注释

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

示例

下面的示例通过使用筛选出在美国的销售额的度量值,然后按日历年和产品类别进行划分,创建美国以外的 Internet 销售额报表。为了创建此度量值,您通过使用 Sales Territory 筛选表 Internet Sales USD,然后在 SUMX 函数中使用筛选后的表。

在这个示例中,表达式 FILTER('InternetSales_USD', RELATED('SalesTerritory'[SalesTerritoryCountry])<>"United States") 返回作为 Internet 销售的子集的表,但不包括属于美国销售区域的所有行。RELATED 函数用于将 Internet Sales 表中的 Territory 键链接到 SalesTerritory 表中的 SalesTerritoryCountry。

下表演示对度量值 NON USA Internet Sales(在下面的代码部分中将提供其公式)的概念证明。该表将所有 Internet 销售与非美国 Internet 销售进行比较,以便通过从计算中排除在美国进行的销售,演示筛选表达式的工作方式。

为了重新创建该表,请将字段 SalesTerritoryCountry 添加到该数据透视表的“行标签”区域中。

表 1.将美国的总销售额与所有其他区域的总销售额进行比较

行标签

Internet Sales

Non USA Internet Sales

Australia

$4,999,021.84

$4,999,021.84

Canada

$1,343,109.10

$1,343,109.10

France

$2,490,944.57

$2,490,944.57

Germany

$2,775,195.60

$2,775,195.60

United Kingdom

$5,057,076.55

$5,057,076.55

United States

$9,389,479.79

总计

$26,054,827.45

$16,665,347.67

最终的报表显示在使用度量值 NON USA Internet Sales 创建数据透视表时的结果。将字段 CalendarYear 添加到数据透视表的“行标签”区域,将字段 ProductCategoryName 添加到数据透视表的“列标签”区域。

Non USA Internet Sales

列标签

行标签

Accessories

Bikes

Clothing

总计

2001

$1,526,481.95

$1,526,481.95

2002

$3,554,744.04

$3,554,744.04

2003

$156,480.18

$5,640,106.05

$70,142.77

$5,866,729.00

2004

$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])

results matching ""

    No results matching ""