リレーションシップを効果的に使用する

完了

既定の動作をオーバーライドできるもう 1 つの DAX 関数は、USERELATIONSHIP です。

次のデータ モデルの例を考えてみましょう。

リレーションシップを管理する方法のスクリーンショット。

上のスクリーンショットでは、Date 列と OrderDate 列の間に確立されたリレーションシップが、2 つをつなぐ強調表示された線で示されています。 2 つのテーブルの間の実線は、それがアクティブなリレーションシップであることを示しています。つまり、既定では、Sales データのメジャーが表示されている日付テーブルでのスライスは、OrderDate 列に沿って行われます。 Date および ShipDate 列の間に存在する破線のリレーションシップは、それが非アクティブなリレーションシップであることを示しています。 このリレーションシップは、メジャーで明示的に宣言されない限り、使用されません。

目標は、次のレポートを作成することです。ここでは、Sales by Ship DateSales 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 番目の視覚エフェクトを作成できるようになります。