10
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

計画vs実績ウォーターフォール図

10
Last updated at Posted at 2025-12-06

この記事は、Microsoft Power BI Advent Calendar 2025 12月7日担当分の記事です。

1. はじめに

計画金額を開始点、実績金額を終了点とするウォーターフォール図の作成方法をご紹介します。

2. 完成イメージ

主要な勘定科目の増減を直感的に把握できる「計画 vs 実績」のウォーターフォール図(階段チャート)です。

Waterfall.png

3. 公式ドキュメント

4. サンプルデータ

勘定科目 計画 実績
材料費 1200 1150
労務費 800 850
経費 500 480
減価償却費 600 620
外注費 700 750
研究開発費 400 390
販売費 550 530
一般管理費 450 470
物流費 300 310
修繕費 200 210

5. 作成手順

5-1. テーブルの準備

新しいテーブルを作成します。

SampleManufacturingTable =
DATATABLE (
    "勘定科目", STRING,
    "計画", INTEGER,
    "実績", INTEGER,
    {
        { "材料費", 1200, 1150 },
        { "労務費", 800, 850 },
        { "経費", 500, 480 },
        { "減価償却費", 600, 620 },
        { "外注費", 700, 750 },
        { "研究開発費", 400, 390 },
        { "販売費", 550, 530 },
        { "一般管理費", 450, 470 },
        { "物流費", 300, 310 },
        { "修繕費", 200, 210 }
    }
)

5-2. パラメータの設定

ウォーターフォール図ビジュアルには、3つのパラメータがあります。
ウォーターフォール図ビジュアルアイコン.png

5-2-1. カテゴリ(Category)

カテゴリパラメータ用にWaterfallCategoryテーブルを作成します。

WaterfallCategory = 
DATATABLE (
    "CategorySort", INTEGER,
    "Category", STRING,
    {
        { 1, "計画" },
        { 2, "実績" }
    }
)
CategorySort Category
1 計画
2 実績

Category列をCategorySort列で「列で並び替え」をして、計画・実績の順番付けをします。
カテゴリパラメータに 'WaterfallCategory'[Category] 列を指定します。

5-2-2. 詳細(Breakdown)

詳細パラメータに 'SampleManufacturingTable'[勘定科目] 列を指定します。

5-2-3. Y 軸(Values)

Y軸パラメータに入力できるデータは1つです。そこで、SWITCH関数を使って選択されたCategoryで計画金額と実績金額を切り替えるDAXを作ります。

RevenueVariance =
VAR _startValue =
    SUM ( SampleManufacturingTable[計画] )
VAR _endValue =
    SUM ( SampleManufacturingTable[実績] )
RETURN
    SWITCH (
        SELECTEDVALUE ( WaterfallCategory[Category] ),
        "計画", _startValue,
        "実績", _endValue
    )

Y軸パラメータに [RevenueVariance] メジャーを指定します。

以上で作成できます。

6. ベストプラクティスを考える

上記のようにDAXが少し複雑になってしまうのは、ファクトテーブルが標準ビジュアルに適していないからかもしれません。
以下のようなディメンションテーブルファクトテーブルに変換し、スタースキーマにしてみましょう。

6-1. ディメンションテーブル DimCategory

CategoryKey Category
1 計画
2 実績

6-2. ディメンションテーブル DimAccounts

AccountsKey Accounts
1 材料費
2 労務費
3 経費
4 減価償却費
5 外注費
6 研究開発費
7 販売費
8 一般管理費
9 物流費
10 修繕費

6-3. ファクトテーブル Expense

CategoryKey AccountsKey Amount
1 1 1200
1 2 800
1 3 500
1 4 600
1 5 700
1 6 400
1 7 550
1 8 450
1 9 300
1 10 200
2 1 1150
2 2 850
2 3 480
2 4 620
2 5 750
2 6 390
2 7 530
2 8 470
2 9 310
2 10 210

6-4. メジャー TotalAmount

TotalAmount = 
SUM( Expense[Amount] )

6-5. スタースキーマ

ウォーターフォール図スタースキーマ.png

6-6. パラメータの設定

6-6-1. カテゴリ(Category)

カテゴリパラメータに 'DimCategory'[Category] 列を指定します。

6-6-2. 詳細(Breakdown)

詳細パラメータに 'DimAccounts'[Accounts] 列を指定します。

6-6-3. Y 軸(Values)

Y軸パラメータに [TotalAmount] メジャーを指定します。

6-7. 完成

とてもシンプルにウォーターフォール図が作れました。
Waterfall.png

7. まとめ

  • 標準ビジュアルに適したファクトテーブルにすれば、ウォーターフォール図をシンプルに実装できます。
  • もし適していなくても、DAXを駆使して開始点と終了点を任意に設定することで時系列ではないカテゴリの比較ができます。
10
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?