Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
学ぶ KPIのためのコアDAXメジャー | DAXメジャーの作成
Excelデータモデリング

KPIのためのコアDAXメジャー

メニューを表示するにはスワイプしてください

新しいメジャーを追加する前に、すでに構築された内容の構造を理解しておくことが重要です。Total SalesTransaction Count基本メジャーであり、それぞれが他のメジャーに依存せず、データから直接1つの内容を計算します。Total QuantityDistinct Customers も基本メジャーです。本章で唯一の複合メジャーAverage Order Value であり、計算を繰り返すのではなく、Total Sales と Transaction Count を名前で参照します。

Distinct Customers := DISTINCTCOUNT(Sales[Customer ID])

Sales テーブル内の一意な Customer ID の数をカウントします(Customers ディメンションテーブルではありません)。これにより、現在のフィルターコンテキストで実際に売上活動があった顧客のみがカウントされます。Customers テーブルに存在していても注文をしていない顧客は正しく除外されます。

Average Order Value := DIVIDE([Total Sales], [Transaction Count])

DIVIDE 関数を使用して Total Sales を Transaction Count で割ります。スラッシュ演算子 / ではなく、DIVIDE を使います。2つの基本メジャーをテーブル接頭辞なしの角括弧で名前参照しており、これはDAXでメジャー(列ではない)を参照していることを示します。

Note
注意

DIVIDE は分母がゼロの場合に空白を返します。スラッシュ演算子 / はエラーを返します。

Total Quantity := SUM(Sales[Quantity])

Quantity 列の合計(販売されたユニット数)を計算します。これは売上高ではなく、販売数量です。売上と数量は連動することが多いですが、必ずしもそうとは限りません。両方を追跡することで、多数の低額取引が発生した期間と、少数の高額取引が発生した期間を迅速に特定できます。

DISTINCTCOUNT と COUNTROWS の比較

COUNTROWS を使用して顧客数をカウントすると、1人の顧客が複数回注文した場合に誤った結果となる。例えば、3回注文した顧客は COUNTROWS で3人とカウントされるが、DISTINCTCOUNT では1人とカウントされる。「顧客数はいくつか」という質問には、常に DISTINCTCOUNT を使用すること。

参照

DAX では、数式内で列とメジャーを区別するために一貫した視覚的なシグナルを使用します:

メジャーの使用前の検証

5つのメジャーをすべて作成した後、推奨される検証手順は、まず行や列の分割なしで、すべてをピボットテーブルの値エリアに追加することです。総計行には、全データセットに対して計算された5つのメジャーすべてが表示されます。それぞれの数値が妥当かどうかを確認します。たとえば、Total Quantity が Transaction Count よりも小さい場合は、何か問題がある可能性があります。合計が妥当であることを確認してから、行やスライサーを追加します。

  1. Sales テーブルからピボットテーブルを挿入し、データモデルに追加;
  2. 5つのメジャーすべてを値エリアにドラッグ — まだ行や列は追加しない;
  3. 各総計がデータの内容と照らして妥当か確認;
  4. Customers の Region を行に追加 — 各地域の内訳が妥当か検証;
  5. Products の Category スライサーを追加 — 5つのメジャーすべてが正しくフィルタに反応するか確認。

タスク

このタスクでは、KPIツールキットを完成させるために3つの新しいメジャーを追加し、5つすべてのメジャーを多次元ピボットテーブルで検証します。

ステップ1 — 残りの3つのメジャーを追加

  • ワークブックを開く。
  • Power Pivot → 管理 → データビュー → Salesタブ に移動。
  • 計算エリアで、以下の3つのメジャーを正確に入力して追加:

Distinct Customers := DISTINCTCOUNT(Sales[CustomerID])

Average Order Value := DIVIDE([Total Sales], [Transaction Count])

Total Quantity := SUM(Sales[Quantity])

  • それぞれ入力後にEnterキーを押す。
  • 3つすべてが計算エリアに、メジャー名の下に計算値が表示されていることを確認。

作業が完了すると、計算エリアには以下の5つのメジャーが正確に含まれているはずです:

  • Total Sales
  • Transaction Count
  • Distinct Customers
  • Average Order Value
  • Total Quantity

ステップ2 — ピボットテーブルで検証

  • Excelに戻る。このワークブックのデータモデルからピボットテーブルを挿入。

次のレイアウトを作成:

  • :DatesテーブルのMonthName
  • :5つすべてのメジャー(Total Sales、Transaction Count、Distinct Customers、Average Order Value、Total Quantityの順)
  • スライサー:ProductsテーブルのCategory

作成後、ピボットテーブルを見て次の質問に答えてください。

  1. すべての月とカテゴリを通したTotal Salesの総計はいくらですか?
  2. どの月が最も高いAverage Order Valueを持っていますか?
  3. スライサーでBikesを選択したとき、Distinct Customersの数は変化しますか?
  4. それはそのカテゴリの顧客行動について何を示していますか?
  5. スライサーをBikesからAccessoriesに切り替えたとき、Total Quantityは増加しますか、それとも減少しますか?
  6. それは2つのカテゴリの違いについて何を示唆していますか?
question mark

同僚が1月に注文した顧客数をカウントしたいと考え、次のメジャーを作成しました:

January Customers := COUNTROWS(Sales)

このメジャーの問題点と、何に置き換えるべきかを答えてください。

正しい答えを選んでください

すべて明確でしたか?

どのように改善できますか?

フィードバックありがとうございます!

セクション 4.  2

AIに質問する

expand

AIに質問する

ChatGPT

何でも質問するか、提案された質問の1つを試してチャットを始めてください

セクション 4.  2
some-alt