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