ISFILTERED 関数 (DAX)
columnName が直接フィルター処理される場合は、TRUE を返します。 列にフィルターがない場合、または同じテーブルまたは関連テーブルの別の列がフィルター処理の対象となっているためにフィルター処理が発生する場合、この関数は FALSE を返します。
構文
ISFILTERED(<columnName>)
パラメーター
- columnName
標準 DAX 構文を使用した既存の列の名前。 式を指定することはできません。
戻り値
columnName が直接フィルター処理される場合は TRUE。
説明
1 つまたは複数のフィルターが特定の columnName に適用されているとき、その列は "直接フィルター処理されている" といいます。同じテーブル内または関連テーブル内の別の列に適用されたフィルターがその列をフィルター処理することによって columnName に影響を及ぼしているときは、列が "クロスフィルター処理されている" といいます。
関連する ISCROSSFILTERED 関数 (DAX) 関数は、columnName または同じテーブル内か関連テーブル内の別の列がフィルター処理されている場合、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
ProductCategory[ProductCategoryName] は Product[ProductName] を間接的にフィルター処理 (クロスフィルター処理) し、列に対する直接的なフィルター処理を行わないため、テーブルの値は FALSE となります。
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
Product[Status] は Product[Name] を直接フィルター処理しないため、テーブルには多くの FALSE 値が示されたままです。
このプロセスの最後の手順として、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 サンプル スプレッドシート モデルを使用しています。