FILTER
傳回代表另一個資料表或運算式子集的資料表。
語法
FILTER(<table>,<filter>)
參數
詞彙 | [定義] |
---|---|
table | 要篩選的資料表。 資料表也可以是產生資料表的運算式。 |
篩選器 | 要針對每個資料表資料列求值的布林運算式。 例如,[Amount] > 0 或 [Region] = "France" |
傳回值
僅包含已篩選資料列的資料表。
備註
您可以使用 FILTER 來減少資料表中所使用的資料列數,並僅使用特定資料進行計算。 FILTER 不會單獨使用,而會當作其他需要資料表作為引數之函式的內嵌函式使用。
如需使用 FILTER 時的最佳做法,請參閱避免使用 FILTER 做為篩選引數。
在 DAX 中使用 COUNTROWS 而不是 COUNT
- 在計算結果欄或資料列層級安全性 (RLS) 規則中使用時,不支援在 DirectQuery 模式中使用此函式。
範例
下列範例使用篩選出美國銷售額的量值來建立美國以外地區網際網路銷售報表,然後依日曆年度和產品類別進行分割。 若要建立此量值,您可以使用「銷售領域」來篩選「網際網路銷售額 (美金)」資料表,然後在 SUMX 函式中使用已篩選的資料表。
在此範例中,運算式:
FILTER('InternetSales_USD', RELATED('SalesTerritory'[SalesTerritoryCountry])<>"United States")
傳回一個資料表,這是減去所有屬於美國銷售領域之資料列後的「網際網路銷售」子集。 RELATED 函式會將「網際網路銷售額」資料表中的「領域」索引鍵,連結到 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 |
最終報表資料表會顯示使用「非美國網際網路銷售額」量值所建立樞紐分析表的結果。 將 CalendarYear 欄位新增至樞紐分析表的 [資料列標籤] 區域,然後將 ProductCategoryName 欄位新增至 [資料行標籤] 區域。
表 2. 依產品類別比較非美國銷售額
資料列標籤 | Accessories | Bikes | Clothing | 總計 |
---|---|---|---|---|
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])