次の方法で共有


列参照とメジャー参照

データ モデラーとして、DAX 式はモデルの列とメジャーを参照します。 列とメジャーは常にモデル テーブルに関連付けられますが、これらの関連付けは異なるので、式で参照する方法に関する推奨事項は異なります。

列はテーブル レベルのオブジェクトであり、列名はテーブル内で一意である必要があります。 そのため、同じ列名が異なるテーブルに属している場合、モデル内で同じ列名が複数回使用される可能性があります。 もう 1 つのルールがあります。列名は、同じテーブルに存在するメジャー名または階層名と同じ名前を持つことはできません。

一般に、DAX では、列への "完全修飾" 参照を使用することが強制されません。 完全修飾参照は、テーブル名が列名の前にあることを意味します。

列名参照のみを使用する計算列定義の例を次に示します。 Sales 列と Cost 列の両方が、ordersという名前のテーブルに属しています。

Profit = [Sales] - [Cost]

完全修飾列参照を使用して、同じ定義を書き換えることができます。

Profit = Orders[Sales] - Orders[Cost]

ただし、Power BI であいまいさが検出されたときに、完全修飾列参照を使用する必要がある場合があります。 数式を入力すると、赤い波線とエラー メッセージが表示されます。 また、LOOKUPVALUEDAX 関数のような一部の DAX 関数では、完全修飾列を使用する必要があります。

常に列参照を完全修飾することをお勧めします。 理由は、「の推奨事項」セクションに記載されています。

措置

メジャーは、モデルレベル オブジェクトです。 このため、メジャー名はモデル内で一意である必要があります。 ただし、[フィールド] ペインでは、レポート作成者には、1 つのモデル テーブルに関連付けられている各メジャーが表示されます。 この関連付けは、見栄えの理由から設定されており、メジャーのホーム テーブル プロパティを設定することで構成できます。 詳細については、Power BI Desktop のメジャー (メジャーを整理する) に関するページを参照してください。

式で完全修飾メジャーを使用することができます。 DAX intellisense であっても、提案が提供されます。 ただし、これは必須ではなく、推奨される方法ではありません。 メジャーのホーム テーブルを変更する場合は、それに対する完全修飾メジャー参照を使用するすべての式が中断されます。 その後、壊れた各数式を編集して、メジャー参照を削除 (または更新) する必要があります。

メジャー参照を修飾しないことをお勧めします。 理由は、「の推奨事項」セクションに記載されています。

推奨 事項

Microsoft の推奨事項はシンプルで覚えやすい内容です。

  • 常に完全修飾列参照を使用する
  • 完全修飾メジャー参照は使用しない

その理由は次のとおりです。

  • 数式の入力: 解決すべきあいまいな参照がないため、式は受け入れられます。 また、完全修飾列参照を必要とする DAX 関数の要件を満たします。
  • 堅牢性: メジャー ホーム テーブルのプロパティを変更した場合でも、式は引き続き機能します。
  • 読みやすさ: 式がすばやく簡単に理解できるようになります。完全に修飾されているかどうかによって、列またはメジャーであることがすぐに確認できます。