CROSSFILTER
2 つの列の間に存在するリレーションシップの計算で使用するクロスフィルターの方向を指定します。
構文
CROSSFILTER(<columnName1>, <columnName2>, <direction>)
パラメーター
用語 | 定義 |
---|---|
columnName1 |
標準の DAX 構文 and 完全修飾を使用する既存の列の名前。これは通常、使用するリレーションシップの多くの側面を表します。if 引数は、使用する前に関数が入れ替える逆の順序で指定されます。 この引数を式にすることはできません。 |
columnName2 |
標準の DAX 構文 and 完全修飾を使用する既存の列の名前。通常は、使用するリレーションシップの一方 or 参照側を表します。if 引数は、使用する前に関数が入れ替える逆の順序で指定されます。 この引数を式にすることはできません。 |
Direction |
使用するクロスfilter 方向。 次のいずれかである必要があります。None - このリレーションシップに沿ってクロスフィルター処理は行われません。Both - 両側 filters 反対側の Filters。OneWay - 一方の側 or リレーションシップの参照側 filter 他方の側で Filters します。 このオプションは、一対一リレーションシップでは使用できません。 多対多リレーションシップでは、どちらの側が参照側であるかが不明であるため、このオプションを使用しないでください。代わりにOneWay_LeftFiltersRight or OneWay_RightFiltersLeftを使用してください。OneWay_LeftFiltersRight - columnName2 の側 columnName1 filter 側に Filters。 このオプションは、一対一 or 多対一リレーションシップでは使用できません。OneWay_RightFiltersLeft - columnName1 の側 columnName2 filter 側に Filters。 このオプションは、一対一 or 多対一リレーションシップでは使用できません。 |
value を返す
この関数は valueを返しません。この関数は、クエリの duration に対して、指定されたリレーションシップのクロス フィルター処理の方向のみを設定します。
備考
1 対 1 のリレーションシップの場合、一方のリレーションシップ and 双方向に違いはありません。
CROSSFILTER は、引数として filter を受け取る関数でのみ使用できます。たとえば、CALCULATE、CALCULATETABLE、CLOSINGBALANCEMONTH、CLOSINGBALANCEQUARTER、CLOSINGBALANCEYEAR、OPENINGBALANCEMONTH、OPENINGBALANCEQUARTER、OPENINGBALANCEYEAR、TOTALMTD、TOTALQTDandTOTALYTD 関数などです。
CROSSFILTER では、モデル内の既存のリレーションシップが使用され、終了ポイント列によってリレーションシップが識別されます。
CROSSFILTERでは、リレーションシップのクロスフィルター設定は重要 not。つまり、リレーションシップが 1 つ filter に設定されているかどうかにかかわらず、モデルの双方向 or 関数の使用に影響 not。 CROSSFILTER は、既存のクロスフィルター設定をオーバーライドします。
引数として指定された列がリレーションシップの一部 notif、引数が異なるリレーションシップに属 orerror が返されます。
If CALCULATE 式が入れ子になっている場合、CROSSFILTER 関数 contains 複数の CALCULATE 式 and、最も内側の CROSSFILTER は、競合 or あいまいさの場合に優先されます。
この関数は、行レベル セキュリティ (RLS) 規則 or 計算列で使用する場合に、DirectQuery モードで使用するためにサポート not。
例
次のモデル図では、DimProduct and DimDate の両方に FactInternetSales との一方向リレーションシップがあります。
既定では、yearによって販売された製品の Count を取得することはできません。
yearで製品の count を取得するには、次の 2 つの方法があります。
リレーションシップで双方向のクロスフィルター処理を有効にします。 これにより、これら 2 つのテーブル間のデータ allfilters のしくみが変わります。
CROSSFILTER 関数を使用して、この measureに対するリレーションシップの動作を変更します。
DAXを使用する場合は、CROSSFILTER 関数を使用して、リレーションシップによって定義された 2 つの列間のクロスfilter 方向の動作を変更できます。 この場合、DAX 式は次のようになります。
BiDi:= CALCULATE([Distinct Count of ProductKey], CROSSFILTER(FactInternetSales[ProductKey], DimProduct[ProductKey] , Both))
measure 式で CROSSFILTER 関数を使用すると、期待される結果が得られます。