明示的なメジャーを作成する

完了

DAX 式を記述することで、モデル内の任意のテーブルにメジャーを追加できます。 メジャー式は単一の値を返す必要があります。 このセクションでは、明示的なメジャーを作成する方法について説明します。

メジャーでは、モデルに値は格納されません。 代わりに、Power BI はクエリ時にそれらを計算してモデル データを要約します。 メジャーはテーブルまたは列を直接参照できないため、関数を使用してデータを集計する必要があります。

簡単なメジャー

簡単なメジャーは、暗黙的なメジャーと同様、単一の列の値を集計します。

たとえば、Sales テーブルにメジャーを追加できます。 データ ペインで、Sales テーブルを選択します。 テーブル ツール リボンで、新しいメジャー を選択します。

スクリーンショットは、Sales テーブルの [テーブル ツール] コンテキスト リボンを示しています。[新しいメジャー] コマンドが強調表示されています。

次の数式は、Revenue というメジャーを作成します。 このメジャーでは、SUM 関数を使用して、Sales Amount 列の値を合計します。 このメジャーを Sales Amount の暗黙的メジャーと一緒にテーブルに追加すると、結果は同じになります。

Revenue =
SUM(Sales[Sales Amount])

ヒント

メジャーを追加して列を非表示にすると、レポート作成者は代わりに明示的なメジャーを使用できるようになります。

メジャー ツールのコンテキスト リボンでは、メジャーの書式設定、データ型の設定、ホーム テーブルの変更を行うことができます。 ホーム テーブルは、データ ペインを見たときにメジャーが表示される場所を指します。

小数点以下の桁数プロパティが 2 に設定された [書式] リボン タブのスクリーンショット。

ヒント

メジャーを作成した直後に書式設定オプションを設定することをお勧めします。 これにより、すべてのレポート ビジュアルで値の一貫性が確保されます。

次のコードに示すように、Profit を計算するためのメジャーが必要になる場合があることを考慮してください。

Profit =
SUM(Sales[Profit Amount])

この例では、Profit Amount 列は計算列です。 その列は必要ないため、このアプローチは最適ではありません。 次のセクションでは、利益を直接計算するメジャーを作成し、モデルのサイズを縮小して更新時間を短縮する方法について説明します。

次のコードは、Order Line CountOrder Count を返す 2 つの異なるメジャーを作成します。 COUNT 関数は、列内の BLANK 以外の値をカウントします。 DISTINCTCOUNT 関数は一意の値をカウントします。 注文には複数の注文明細行が含まれる場合があるため、Sales Order 列には重複があります。 DISTINCTCOUNT を使用すると、正しい注文数が得られます。

Order Line Count =
COUNT(Sales[SalesOrderLineKey])

Order Count =
DISTINCTCOUNT('Sales Order'[Sales Order])

テーブル内の行数をカウントする COUNTROWS を使用して Order Line Count メジャーを記述することもできます。

Order Line Count =
COUNTROWS(Sales)

参照されるすべてのメジャーは、単一の列または単一のテーブルを集計するため、簡単なメジャーと見なされます。

Revenue、Cost、Minimum Price、Order Line Count などのメジャーを含むマトリックス ビジュアルのスクリーンショット。

複合メジャーを作成する

複合メジャーは 1 つ以上の他のメジャーを参照します。 たとえば、他のメジャーを参照して Profit メジャーを再定義できます。 このメジャーは、以前に参照した計算列の代わりに使用できます。

Profit =
[Revenue] - [Cost]

このモデルの変更から、重要な教訓が得られます。計算列を削除すると、セマンティック モデルのサイズが縮小され、データの更新時間が短縮されるため、セマンティック モデルが最適化されます。 Profit メジャーは既存のメジャーを使用して必要な結果を直接生成できるため、Profit Amount 計算列は最終的に必要ありませんでした。

場合によっては、他のメジャーに依存するメジャーを定義することが理にかなっています。 更新はすべての依存メジャーに影響を及ぼす可能性があるため、変更は常に慎重にテストしてください。

クイック メジャーを使用する

クイック メジャーを使用すると、DAX を自分で記述しなくても一般的な計算を実行できます。 Power BI は DAX 式を自動的に生成し、DAX スキルの学習と構築に役立ちます。

たとえば、クイック メジャーを使用して、次の手順で Profit Margin メジャーを作成できます。

  1. [テーブル ツール] リボンで [クイック メジャー] を選択します。
  2. [算術演算] > [除算] を選択します。
  3. Profit メジャーを分子Revenue分母に追加します。

スクリーンショットは、[クイック メジャー] ウィンドウとメジャーの構成を示しています。[分子] は Profit に設定され、[分母] は Revenue に設定されています。

新しいメジャーが データ ペインに表示され、DAX 数式を確認できます。

Profit Margin = 
DIVIDE([Profit], [Revenue])

計算列とメジャーを比較する

DAX を初めて使う方の多くは、最初は、計算列とメジャーがわかりにくいと感じます。 どちらも DAX 数式を使用してセマンティック モデルで作成されますが、計算列とメジャーの動作は異なります。

計算列 メジャー
目的 テーブルに新しい列を追加する モデル データの集計方法を定義する
評価 データ更新時に行コンテキストを使用して評価される クエリ時にフィルター コンテキストを使用して評価される
ストレージ テーブルの各行の値を保存する (インポート モード) モデルに値を格納しない
ビジュアルでの使用 データを フィルター、グループ化、または集計可能 (暗黙的なメジャーとして) データの集計専用に設計されている
パフォーマンスへの影響 メモリ使用量とモデル サイズが増加する可能性がある 大規模モデルで効率とパフォーマンスが向上
最適 スライスまたはリレーションシップのための新しいフィールド フィルターに基づく動的計算

これらの違いを認識することで、モデリングとレポートのニーズに適したアプローチを選択するのに役立ちます。