ISCROSSFILTERED 関数 (DAX)
columnName、または同じテーブル内か関連テーブル内の別の列がフィルター選択されている場合、TRUE を返します。
構文
ISCROSSFILTERED(<columnName>)
パラメーター
- columnName
標準 DAX 構文を使用した既存の列の名前。 式を指定することはできません。
戻り値
columnName、または同じテーブル内か関連テーブル内の別の列がフィルター選択されている場合は TRUE。 それ以外の場合は 、FALSE を返します。
説明
同じテーブル内または関連テーブル内の別の列に適用されたフィルターが、columnName をフィルター処理することによって、この列に影響を及ぼしているとき、列が "クロスフィルター処理されている" といいます。 フィルターが特定の列に適用されているとき、その列は "直接フィルター処理されている" といいます。
関連する ISFILTERED 関数 (DAX) 関数は、columnName が直接フィルター処理されている場合に 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
NA
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 になっています。Product[ProductName] には、DateTime[CalendarYear] と SalesTerritory[SalesTerritoryGroup] のフィルター処理の影響が一切及んでいないためです。
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
NA
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
クランクセット
ディレイラー
フェンダー
フォーク
グローブ
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
NA
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
クランクセット
ディレイラー
フェンダー
フォーク
グローブ
Handlebars
Headsets
スライサーは、Product[ProductName] および Product[ModelName] に置き換えることができます。 いずれのスライサーでもアイテムが選択されていないと、メジャーは FALSE を返します。ただし、スライサーでアイテムを選択すると、メジャーから TRUE が返されます。Product[ProductName] をそれ自体で (または Product[ModelName] を選択することによって) フィルター処理しているためです。
ISCROSSFILTERED() を使用すると、DAX 式が評価されるコンテキストにおいて columnName がフィルター処理されているかどうかを確認できます。
この例では、DAX_AdventureWorks サンプル スプレッドシート モデルを使用しています。