単純なメジャーを作成する
DAX 式を記述して、モデル内の任意のテーブルにメジャーを追加できます。 メジャーの数式では、スカラー値または単一の値を返す必要があります。
注意
表形式モデリングには、計算メジャーのような概念は存在しません。 "計算" という言葉は、計算されたテーブルや計算された列を説明するために使用されます。 これは、明示的なメジャーの概念を持たない、Power Query から生成されたテーブルや列と区別するものです。
メジャーでは、モデルに値は格納されません。 代わりに、クエリの実行時にモデル データの集計を返すために使用されます。 さらに、メジャーではテーブルまたは列を直接参照することはできません。集計を作成するには、テーブルまたは列を関数に渡す必要があります。
"単純な" メジャーとは、1 つの列の値を集計するメジャーです。暗黙的なメジャーによって行われることが自動的に実行されます。
次の例では、Sales テーブルにメジャーを追加します。 [フィールド] ペインで、Sales テーブルを選択します。 メジャーを作成するには、[テーブル ツール] コンテキスト リボンの [計算] グループ内から、[新しいメジャー] を選択します。
数式バーに次のメジャー定義を入力し、Enter キーを押します。
Revenue =
SUM(Sales[Sales Amount])
メジャー定義によって、Sales テーブルに Revenue メジャーが追加されます。
SUM
DAX 関数を使用して、Sales Amount 列の値が合計されます。
[メジャー ツール] コンテキスト リボンの [書式設定] グループ内で、小数点以下の桁数を 2 に設定します。
ヒント
メジャーを作成した直後に、書式設定オプションを設定して、すべてのレポート視覚化に適切に表現された一貫性のある値が表示されるようにします。
次に、行列の視覚エフェクトに Revenue メジャーを追加します。 Sales Amount の暗黙的なメジャーと同じ結果が生成されることに注意してください。
行列の視覚エフェクトで、Sales Amount と Unit Price の合計を削除します。
次に、さらにメジャーを作成します。 次のメジャー定義を使用して Cost メジャーを作成し、小数点以下 2 桁で書式を設定します。
Cost =
SUM(Sales[Total Product Cost])
Profit メジャーを作成し、小数点以下 2 桁で書式を設定します。
Profit =
SUM(Sales[Profit Amount])
Profit Amount 列が計算列であることに注意してください。 このトピックについては、このモジュールで後ほど説明します。
次に、Quantity メジャーを作成し、桁区切り記号のある整数として書式設定します。
Quantity =
SUM(Sales[Order Quantity])
3 つの単価メジャーを作成し、小数点以下 2 桁でそれぞれの書式を設定します。 使用されているさまざまな DAX 集計関数に注意してください: MIN
、MAX
、AVERAGE
。
Minimum Price =
MIN(Sales[Unit Price])
Maximum Price =
MAX(Sales[Unit Price])
Average Price =
AVERAGE(Sales[Unit Price])
ここで、Unit Price 列を非表示にします。これにより、レポート作成者は、ここで作成したメジャーを使用する以外に、列を集計できなくなります。
ヒント
メジャーを追加したり、列を非表示にしたりすることで、データ モデラーは集計オプションを制限できます。
次に、注文と注文明細の数をカウントする次の 2 つのメジャーを作成します。 どちらのメジャーの書式も、小数点以下の桁数をゼロに設定します。
Order Line Count =
COUNT(Sales[SalesOrderLineKey])
Order Count =
DISTINCTCOUNT('Sales Order'[Sales Order])
COUNT
DAX 関数では、列内のブランクではない値の数がカウントされます。一方、DISTINCTCOUNT
DAX 関数では、列内の個別の値の数がカウントされます。 注文には 1 つ以上の注文明細を含めることができるので、Sales Order 列には重複する値が存在します。 この列に含まれる個別の値の数により、注文の数が正しくカウントされます。
または、Order Line Count メジャーを記述するさらに適切な方法を選択できます。 列の値をカウントするのではなく、COUNTROWS
DAX 関数を使用する方がセマンティックがより明確になります。 列の値を集計する、前に紹介した集計関数とは異なり、COUNTROWS
関数では "テーブルの" 行数がカウントされます。
前述の手順で作成した Order Line Count メジャーの式を次のパラメーターに変更します。
Order Line Count =
COUNTROWS(Sales)
各メジャーを行列の視覚エフェクトに追加します。
作成したすべてのメジャーは、1 つの列または 1 つのテーブルが集計されるので、単純なメジャーと見なされます。