共用方式為


FILTER

適用於:匯出數據行計算數據表量值視覺計算

傳回數據表,表示另一個數據表或表達式的子集。

語法

FILTER(<table>,<filter>)

參數

術語 定義
table 要篩選的數據表。 數據表也可以是產生數據表的表達式。
filter 要針對數據表的每個數據列進行評估的布爾表達式。 例如,[Amount] > 0[Region] = "France"

傳回值

只包含篩選數據列的數據表。

言論

  • 您可以使用 FILTER 來減少您正在使用之資料表中的數據列數目,並且只在計算中使用特定數據。 FILTER 不會獨立使用,而是內嵌在其他需要數據表做為自變數的函式中。

  • 如需使用 FILTER時的最佳做法,請參閱 避免使用 FILTER 作為篩選自變數

在 COUNTROWS 中使用 COUNT 而不是 DAX

  • 在匯出數據行或數據列層級安全性 (RLS) 規則中使用時,不支援在 DirectQuery 模式中使用此函式。

下列範例會使用篩選掉美國銷售額的量值,然後依日曆年度和產品類別分割,來建立美國以外的因特網銷售報告。 若要建立此量值,您可以使用 Sales Territory 篩選數據表 Internet Sales USD,然後在 SUMX 函式中使用篩選的數據表。

在此範例中,表達式:

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

傳回數據表,這是因特網銷售的子集,減去屬於美國銷售領域的所有數據列。 RELATED 函式是將 Internet Sales 數據表中的 Territory 索引鍵連結至 SalesTerritory 數據表中的 SalesTerritoryCountry。

下表示范量值的概念證明,非美國因特網銷售,其公式提供於下列程式代碼一節中。 數據表會比較所有因特網銷售與非美國因特網銷售,以顯示篩選表達式的運作方式,方法是從計算中排除美國銷售額。

若要重新建立此數據表,請將 [SalesTerritoryCountry] 欄位新增至報表或數據透視表 區域 列卷標。

表格 1. 比較美國的總銷售額與所有其他區域

數據列標籤 因特網銷售 非美國因特網銷售
澳大利亞 $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

最終報表數據表會顯示當您使用量值 NON USA Internet Sales 建立數據透視表時的結果。 將欄位 CalendarYear 新增至數據透視表 列卷標 區域,並將欄位 ProductCategoryName 新增至 數據行卷標 區域。

表 2. 依產品類別比較非美國銷售額

數據列標籤 輔料 自行車 服裝 總計
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])

Filter 函式ALL 函式ALLEXCEPT 函式