次の方法で共有


CROSSFILTER

適用対象:計算列計算テーブルMeasureビジュアル計算

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の側 columnName1filter 側に Filters。 このオプションは、一対一 or 多対一リレーションシップでは使用できません。

OneWay_RightFiltersLeft - columnName1の側 columnName2filter 側に 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 との一方向リレーションシップがあります。

CROSSFILTER_Examp_DiagView

既定では、yearによって販売された製品の Count を取得することはできません。

CROSSFILTER_Examp_PivotTable1

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 関数を使用すると、期待される結果が得られます。

CROSSFILTER_Examp_PivotTable2