ISCROSSFILTERED 函數 (DAX)
當 columnName 或是相同或相關資料表中的其他資料行正在進行篩選時,則傳回 TRUE。
語法
ISCROSSFILTERED(<columnName>)
參數
- columnName
使用標準 DAX 語法之現有資料行的名稱。 它不能是運算式。
傳回值
當 columnName 或是相同或相關資料表中的其他資料行正在進行篩選時,則為 TRUE, 否則傳回 FALSE。
備註
當套用至相同資料表或相關資料表中之其他資料行的篩選會透過篩選作業影響 columnName 時,此資料行就是進行交叉篩選。 當篩選套用至資料行時,此資料行就是進行「直接」(Directly) 篩選。
當 columnName 是進行直接篩選時,相關函數 ISFILTERED 函數 (DAX) 會傳回 TRUE。
範例
下列範例會建立量值,然後呈現不同的案例來說明 ISCROSSFILTERED() 的行為。 您可以透過下載 DAX_AdventureWorks 試算表,遵循這些案例。
首先,請在 [Product] 資料表中建立下列量值 [Is ProductName Cross Filtered]。
=ISCROSSFILTERED(Product[ProductName])
了解 ISCROSSFILTERED():
建立此量值之後,樞紐分析表應該會顯示 [Is ProductName Cross Filtered] 為 FALSE,因為運算式完全未進行篩選。 此時,您應該會看見下列內容:
Is ProductName Cross Filtered
FALSE
如果樞紐分析表沒有顯示任何內容,請將 [Is ProductName Cross Filtered] 資料行拖曳至 [值] 方塊。
將 DateTime[CalendarYear] 拖曳至 [資料行標籤] 方塊,而將 SalesTerritory[SalesTerritoryGroup] 拖曳至 [資料列標籤] 方塊。所有值應該會顯示為 FALSE。 此時,您應該會看見下列內容:
Is Product Name CrossFiltered
資料行標籤
資料列標籤
2005
2006
2007
2008
總計
Europe
FALSE
FALSE
FALSE
FALSE
FALSE
FALSE
無
FALSE
FALSE
FALSE
FALSE
FALSE
FALSE
North America
FALSE
FALSE
FALSE
FALSE
FALSE
FALSE
Pacific
FALSE
FALSE
FALSE
FALSE
FALSE
FALSE
FALSE
FALSE
FALSE
FALSE
FALSE
FALSE
總計
FALSE
FALSE
FALSE
FALSE
FALSE
FALSE
您會在所有資料格中看見 FALSE 值,因為 DateTime[CalendarYear] 或 SalesTerritory[SalesTerritoryGroup] 對於 Product[ProductName] 沒有任何篩選影響。
將 ProductCategory[ProductCategoryName] 資料行拖曳至 [水平交叉分析篩選器] 方塊,而將 ProductSubCategory[ProductSubCategoryName] 拖曳至 [垂直交叉分析篩選器] 方塊。 所有值應該仍然會顯示為 FALSE,因為當您將資料行加入至交叉分析篩選器方塊時,尚未選取分割集。 因此,您應該會看見下列內容:
ProductCategoryName
Accessories
Bikes
Clothing
Components
ProductSubcategoryName
Is Product Name CrossFiltered
資料行標籤
Bib-Shorts
資料列標籤
2005
2006
2007
2008
總計
Bike-Racks
Europe
FALSE
FALSE
FALSE
FALSE
FALSE
FALSE
Bike-Stands
無
FALSE
FALSE
FALSE
FALSE
FALSE
FALSE
Bottles and Cages
North America
FALSE
FALSE
FALSE
FALSE
FALSE
FALSE
Bottom Brackets
Pacific
FALSE
FALSE
FALSE
FALSE
FALSE
FALSE
Brakes
FALSE
FALSE
FALSE
FALSE
FALSE
FALSE
Caps
總計
FALSE
FALSE
FALSE
FALSE
FALSE
FALSE
Chains
Cleaners
Cranksets
Derailleurs
Fenders
Forks
Gloves
Handlebars
Headsets
在交叉分析篩選器中選取任何項目,然後您的資料表會立即將所有資料格轉換成 TRUE,因為您現在正透過相關的資料表 ProductCategory 和 ProductSubcategory 篩選 Product[ProductName] 資料行。 此時,結果看起來應該像這樣:
ProductCategoryName
Accessories
Bikes
Clothing
Components
ProductSubcategoryName
Is Product Name CrossFiltered
資料行標籤
Bib-Shorts
資料列標籤
2005
2006
2007
2008
總計
Bike-Racks
Europe
TRUE
TRUE
TRUE
TRUE
TRUE
TRUE
Bike-Stands
無
TRUE
TRUE
TRUE
TRUE
TRUE
TRUE
Bottles and Cages
North America
TRUE
TRUE
TRUE
TRUE
TRUE
TRUE
Bottom Brackets
Pacific
TRUE
TRUE
TRUE
TRUE
TRUE
TRUE
Brakes
TRUE
TRUE
TRUE
TRUE
TRUE
TRUE
Caps
總計
TRUE
TRUE
TRUE
TRUE
TRUE
TRUE
Chains
Cleaners
Cranksets
Derailleurs
Fenders
Forks
Gloves
Handlebars
Headsets
您現在可以將交叉分析篩選器取代成 Product[ProductName] 和 Product[ModelName]。 只要您沒有在任何交叉分析篩選器上選取任何項目,此量值就會傳回 FALSE。不過,當您在交叉分析篩選器中選取項目時,此量值現在會傳回 TRUE,因為您正在透過量值本身或選取 Product[ModelName] 篩選 Product[ProductName]。
總之,ISCROSSFILTERED() 可讓您判斷 columnName 是否在評估 DAX 運算式的內容中進行篩選。
此範例會使用 DAX_AdventureWorks 範例試算表模型。