ISFILTERED 函數 (DAX)
當 columnName 是進行直接篩選時,則傳回 TRUE。 如果此資料行沒有任何篩選,或者進行篩選的原因是正在篩選相同資料表或相關資料表中的不同資料行,則此函數會傳回 FALSE。
語法
ISFILTERED(<columnName>)
參數
- columnName
使用標準 DAX 語法之現有資料行的名稱。 它不能是運算式。
傳回值
當 columnName 是進行直接篩選時,則為 TRUE。
備註
當篩選套用在資料行上時,columnName 就是進行直接篩選。當套用至相同資料表或相關資料表中之其他資料行的篩選也會透過篩選而影響資料行的 columnName 時,該資料行就是進行交叉篩選。
當 columnName 或是相同或相關資料表中的其他資料行正在進行篩選時,相關函數 ISCROSSFILTERED 函數 (DAX) 會傳回 TRUE。
範例
下列範例會建立量值,然後呈現不同的案例來說明 ISFILTERED() 的行為。 您可以透過下載 Data Analysis Expressions (DAX) 範例資料試算表,遵循這些案例。
首先,請在 [Product] 資料表中建立下列量值 [Is ProductName Filtered directly]。
=ISFILTERED(Product[ProductName])
了解 ISFILTERED():
建立此量值之後,樞紐分析表應該會顯示 [Is ProductName Filtered directly] 為 FALSE,因為運算式完全未進行篩選。 此時,您應該會看見下列內容:
Is ProductName Filtered directly
FALSE
如果樞紐分析表沒有顯示任何內容,請將 [Is ProductName Filtered directly] 拖曳至 [值] 方塊。
將 ProductCategory[ProductCategoryName] 拖曳至 [資料列標籤] 方塊。所有值應該仍然是 FALSE,而且您的資料表看起來應該像這樣:
資料列標籤
Is ProductName Filtered directly
Accessories
FALSE
Bikes
FALSE
Clothing
FALSE
Components
FALSE
FALSE
總計
FALSE
此資料表包含 FALSE 值的原因是 ProductCategory[ProductCategoryName] 間接篩選或交叉篩選 Product[ProductName],而非資料行的直接篩選。
將 Product[Status] 拖曳至 [資料行標籤] 方塊。所有值應該仍然是 FALSE,而且您的資料表看起來應該像這樣:
Is ProductName Filtered directly
資料行標籤
資料列標籤
Current
總計
Accessories
FALSE
FALSE
FALSE
Bikes
FALSE
FALSE
FALSE
Clothing
FALSE
FALSE
FALSE
Components
FALSE
FALSE
FALSE
FALSE
FALSE
FALSE
總計
FALSE
FALSE
FALSE
此資料表仍然具有許多 FALSE 值,因為 Product[Status] 沒有直接篩選 Product[Name]。
此程序的最後一個步驟是將 Product[Name] 拖曳至 [報表篩選] 方塊。 此時,所有內容應該都不會變更。不過,一旦您選取產品名稱之後,資料表值應該會變更為 TRUE。 根據您所選取的產品,您的資料表看起應該像這樣:
ProductName
Mountain-400-W Silver, 38
Is ProductName Filtered directly
資料行標籤
資料列標籤
Current
總計
Accessories
TRUE
TRUE
Bikes
TRUE
TRUE
Clothing
TRUE
TRUE
Components
TRUE
TRUE
TRUE
TRUE
總計
TRUE
TRUE
總之,ISFILTERED() 可讓您判斷 columnName 是否在評估運算式的內容中進行直接篩選。
此範例會使用 DAX_AdventureWorks 範例試算表模型