財務DX / Power BI KPI ダッシュボード作成シリーズ
はじめに
前回のVol.4では、カレンダーテーブルを作成し、4つのFactテーブルをカレンダーマスターテーブルとラインマスターテーブルにつなぎ、データモデルを整えました。
今回は、DAXの基本関数である「SUM」、「AVERAGE」、「DIVIDE」を使い、KPIを計算するための基礎となるDAXメジャーを作成します。
スクリーンショットについて
本シリーズでは、日本語版・英語版の記事で共通のスクリーンショットを使用するため、掲載しているPower BI Desktopのスクリーンショットは英語表示で統一しています。
本文ではメニュー名や操作内容を日本語でも併記しているため、日本語版Power BI Desktopをご利用の場合でも、そのまま読み進められます。
Step 1:DAXとメジャーとは
1. DAXとは
DAX(Data Analysis Expressions)は、Power BIで計算を行うための数式言語です。
Excelの関数に近い書き方で、「SUM」、「AVERAGE」、「DIVIDE」などを組み合わせてKPIを計算できます。DAXを使用して、Calculated Column(計算列)、Measure(メジャー)、Table(テーブル)などを作成できます。
Vol.4で作成したカレンダーテーブルも、DAXを使って作成しました。
2. メジャーとは
メジャーは、レポート上で選択されている条件(期間、ラインなど)に応じて、Power BIがその都度計算する値です。
たとえば、売上高の合計をメジャーで作成すると、スライサーで期間やラインを切り替えるたびに、Power BIが自動で再計算します。今回作成するKPIはすべてメジャーとして作成します。
Step 2:今回作成するKPIメジャー
今回使用するFactテーブルは、サンプルデータの持ち方が2種類あります。
1. KPI列が存在しないテーブル
以下のテーブルは、今回作成するダッシュボードで使用するKPIの列が存在しません。そのため、元データから計算する 必要があります。
Fact_monthly_kpiFact_inventory_turnoverFact_defect_rate
Operating Margin(営業利益率)や Defect Rate(不良率)は比率系KPIですので、行ごとの元データを合計してから割り算して(加重平均で計算する) KPIを算出します。行ごとの比率をそのまま平均すると誤った結果になります。
例:
| ライン | 売上高(万円) | 営業利益率 |
|---|---|---|
| Line A | 1,000 | 20% |
| Line B | 100 | 10% |
行ごとの営業利益率を単純平均すると 15% ですが、売上高の大きさを踏まえて計算すると、正しい営業利益率は約19%になります。
2. KPI列がすでに存在するテーブル
Fact_equipment_utilization
テーブルには、すでに稼働率の列が存在しており、今回は、各ラインの稼働可能時間が同じである前提で、稼働列の平均値をとってメジャーを作成します。
Step 3:KPIメジャーを作成する
1. Operating Margin(営業利益率)
まずは営業利益率のKPIメジャーを計算します。
Fact_monthly_kpiテーブルを選択し、「Modeling(モデリング)」タブから「New Measure(新しいメジャー)」をクリックします。「数式バー」に次のDAXを入力し、「Enter」します。
画面右側の「Data Pane(データペイン)」に、「Operating Margin Measure」が作成されたことを確認します。
Operating Margin Measure =
DIVIDE(
SUM(Fact_monthly_kpi[Net Sales])
- SUM(Fact_monthly_kpi[COGS])
- SUM(Fact_monthly_kpi[SG&A]),
SUM(Fact_monthly_kpi[Net Sales])
)

作成したメジャーを選択した状態で、「Measure tools(メジャーツール)」タブの「Format(書式)」から「Percentage(パーセンテージ)」を選び、小数点以下の桁数を「1」にします。

2. Inventory Turnover(在庫回転率)
次は、在庫回転率のKPIメジャーを作成します。
「数式バー」に次のDAXを入力し、「Enter」します。画面右側の「Data Pane(データペイン)」に、「Inventory Turnover Measure」が作成されたことを確認します。
Inventory Turnover Measure =
DIVIDE(
SUM(Fact_inventory_turnover[COGS]) * 12,
(SUM(Fact_inventory_turnover[Beginning Inventory])
+ SUM(Fact_inventory_turnover[Ending Inventory])) / 2
)

作成したメジャーを選択した状態で、「Measure tools(メジャーツール)」タブの「Format(書式)」から「Decimal number(10進数)」を選び、小数点以下の桁数を「1」にします。

3. Defect Rate(不良率)
次は、不良率のKPIメジャーを作成します。
「数式バー」に次のDAXを入力し、「Enter」します。画面右側の「Data(データ)」ペインに、「Defect Rate Measure」が作成されたことを確認します。
Defect Rate Measure =
DIVIDE(
SUM(Fact_defect_rate[Defect Quantity]),
SUM(Fact_defect_rate[Production Quantity])
)

Operating Marginと同じように、Defect Rate Measureの「Format(書式)」を「Percentage(パーセンテージ)」に、小数点以下の桁数を「1」に設定します。

4. Utilization Rate(設備稼働率)
Step 2-2で記載したとおり、各ラインの稼働可能時間が同じである前提で、設備稼働率のKPIはサンプルデータにある「Utilization Rate」列の平均値をとってメジャーを作成します。
「数式バー」に次のDAXを入力し、「Enter」します。画面右側の「Data(データ)」ペインに、「Utilization Rate Measure」が作成されたことを確認します。
Utilization Rate Measure =
AVERAGE(Fact_equipment_utilization[Utilization Rate])

Utilization Rate Measureの「Format(書式)」も「Percentage(パーセンテージ)」に、小数点以下の桁数を「1」に設定します。

Step 4:ファイルを保存する
メジャーの作成が終わりましたら、「Ctrl + S」でファイルを保存します。
「KPI Dashboard.pbix」に、4つの基本メジャーが追加された状態になります。
まとめ
今回は、DAXを使って4つの基本KPIメジャーを作成しました。
また、「SUM」、「AVERAGE」、「DIVIDE」を使って、基本KPIの計算方法を確認しました。
| KPI | 使用した主な関数 | 計算の考え方 |
|---|---|---|
| Operating Margin | SUM + DIVIDE | 金額を集計してから営業利益率を計算 |
| Utilization Rate | AVERAGE | 各行の稼働率を平均 |
| Inventory Turnover | SUM + DIVIDE | COGSとInventoryを集計してから在庫回転率を計算 |
| Defect Rate | SUM + DIVIDE | 不良数量と生産数量を集計してから不良率を計算 |
これで、ダッシュボードにKPIを表示するための基本的なDAXメジャーが準備できました。
よくあるご質問(FAQ)
1. DAXを使うメリットは何ですか?
DAXはフィルターやスライサーの条件に応じて、計算結果が動的に変化します。
2. DAXの「SUM」「AVERAGE」「DIVIDE」の使い方はExcelと同じですか?
SUMとAVERAGEはほぼ同じです。
DIVIDEはPower BI特有の関数で、比率計算でよく使います。
3. DAXの「DIVIDE」関数と「/」演算子の違いは何ですか?
DIVIDEは分母が0の場合にエラーにならず、空白(BLANK)を返します。
比率計算ではDIVIDEが推奨されます。
4. なぜすべてのKPIで「AVERAGE」を使わないのですか?
比率系のKPIでは、「行ごとの比率を平均する」のではなく、「合計値同士を使って比率を算出する」のが適切です。
ただし、今回のサンプルでは、生産ラインごとの稼働可能時間が同じであることを前提としているため、Utilization Rateは行ごとの平均で計算して問題ありません。
5. DAXメジャーはどのテーブルに作成すべきですか?
どのテーブルに作成しても計算結果は同じですが、管理しやすさのため、本シリーズでは関連するFactテーブルに作成 しています。
次回予告
次回のVol.6では、今回作成した4つのメジャーを使って、前年同期比(YoY) と 目標達成状況 を計算するDAXメジャーを作成します。
これらは、ダッシュボードの「カード」ビジュアルに配置するための重要なステップです。

