リレーションシップを効果的に使用する
既定の動作をオーバーライドできるもう 1 つの DAX 関数は、USERELATIONSHIP です。
次のデータ モデルの例を考えてみましょう。
上のスクリーンショットでは、Date 列と OrderDate 列の間に確立されたリレーションシップが、2 つをつなぐ強調表示された線で示されています。 2 つのテーブルの間の実線は、それがアクティブなリレーションシップであることを示しています。つまり、既定では、Sales データのメジャーが表示されている日付テーブルでのスライスは、OrderDate 列に沿って行われます。 Date および ShipDate 列の間に存在する破線のリレーションシップは、それが非アクティブなリレーションシップであることを示しています。 このリレーションシップは、メジャーで明示的に宣言されない限り、使用されません。
目標は、次のレポートを作成することです。ここでは、Sales by Ship Date と Sales by Order Date という 2 つの視覚エフェクトを使用します。
これらの視覚エフェクトには期間に伴う売上が表示されていますが、最初の視覚エフェクトは注文日別で、2 番目は出荷日別です。そのため、これらはどちらも日付ですが、異なるデータ ポイントが関連付けられて、同じ視覚エフェクトで両方のデータのセットが取得されています。
この Sales by Ship Date のメジャーを作成するために、DAX 関数 USERELATIONSHIP() を使用できます。 この関数を使用すると、特定の計算で使用されるリレーションシップを指定できます。これは既存のリレーションシップを上書きせずに行われます。 この機能には、次の例に示すように、DAX 式で 2 つのテーブル間の既定のアクティブなリレーションシップをオーバーライドすることで、開発者が非アクティブなリレーションシップで追加の計算を作成できるという利点があります。
Sales by Ship Date = CALCULATE(Sum(Sales[TotalPrice]), USERELATIONSHIP(Sales[ShipDate],'Calendar'[Date]))
これで、2 番目の視覚エフェクトを作成できるようになります。
ヘルプが必要ですか? Microsoft のトラブルシューティング ガイドをご覧になるか、問題を報告して具体的なフィードバックをお送りください。