Power PlatformでDX推進を目指すプロぺリアDX支援のメインビジュアル プロぺリアDX支援

即使える!Power Platform技術紹介

「なるべく短時間で」「効果の高い本質的な知識を」「煩わしい広告なしに」獲得!

計算グループで動的フォーマット - 売上は通貨、比率は%を自動切替するDAXテクニック

本記事でわかること

FORMAT関数の限界

同じマトリクスに売上(¥)、利益率(%)、成長率(小数点)を配置したいとき、FORMAT関数を使うと問題が生じます。

売上_テキスト = FORMAT([売上], "¥#,##0")

FORMAT関数は値を「文字列」に変換するため:

  • 合計が計算できなくなる
  • チャートに使用できない
  • スライサーが機能しない

⚠️ 注意
FORMAT関数は表示層のみで使用してください。

計算グループとは

計算グループ(Calculation Groups)は、複数のメジャーに対して統一した変換ロジックを適用する機能です。重要な関数がSELECTEDMEASURE()で、現在処理中のメジャーを参照します。

// 計算アイテムの基本形
SELECTEDMEASURE()

計算グループはメジャー側を変更せず、複数のメジャーに対して一括で変換ロジックを適用できます。


Point! メジャーを修正せずにフォーマットを統一できるため、保守性が大幅に向上します。

フォーマット文字列式の仕組み

計算グループの「フォーマット文字列式」は、数値データ型を保持しながら表示形式のみを動的に変更します。FORMAT関数と異なり、背後のデータは数値のままです。

SWITCH(
  TRUE(),
  SELECTEDMEASURE() = [売上], "¥#,##0",
  SELECTEDMEASURE() = [利益率], "0.00%",
  SELECTEDMEASURE() = [成長率], "0.0000",
  SELECTEDMEASUREFORMATSTRING()
)
機能 FORMAT関数 フォーマット文字列式
データ型 文字列に変換 数値のまま
合計計算
チャート対応

実装手順

Power BI Desktopで計算グループを作成します。

ステップ1:メジャーを定義

売上 = SUMX(Sales, Sales[数量] * Sales[単価])
利益率 = DIVIDE([売上] - [売上原価], [売上])
成長率 = DIVIDE([売上] - [前年売上], [前年売上])

ステップ2:計算グループを作成

  1. 「モデリング」 → 「新規計算グループ」をクリック
  2. 計算グループの名前を「フォーマット」に設定
  3. 計算アイテムを作成

ステップ3:フォーマット文字列式を設定

VAR CurrentMeasure = SELECTEDMEASURE()
RETURN
SWITCH(
  TRUE(),
  CurrentMeasure = [売上], "¥#,##0",
  CurrentMeasure = [利益率], "0.00%",
  CurrentMeasure = [成長率], "+0.00%;-0.00%;0.00%",
  SELECTEDMEASUREFORMATSTRING()
)

マトリクスに配置すると、各メジャーが自動的に指定されたフォーマットで表示されます。


Tip! 計算グループを追加した時点で、すべてのメジャーに対してフォーマットが自動適用されます。

複数の計算グループを組み合わせる

「時間知能」と「フォーマット」の2つの計算グループを組み合わせることで、より複雑な要件に対応できます。

// 計算グループ1:時間知能(優先度:高)
YoY成長率 = DIVIDE(
  SELECTEDMEASURE(),
  CALCULATE(
    SELECTEDMEASURE(),
    DATEADD(Dates[日付], -1, YEAR)
  )
) - 1

// 計算グループ2:フォーマット(優先度:低)
// フォーマット文字列式で表示形式を指定

優先度を「フォーマット」「時間知能」の順で設定し、フォーマットが最後に適用されるようにします。


Point! 複数の計算グループは優先度順に評価されます。フォーマットを最後に適用することが重要です。

まとめ

計算グループのフォーマット文字列式は、FORMAT関数の限界を超える機能です。数値データ型を保持しながら、表示形式のみを動的に切り替えられます。

FORMAT関数との比較

観点 FORMAT関数 計算グループ
実装の難しさ 簡単 中程度
パフォーマンス 低い 高い
マトリクス・チャート 不可 可能
保守性 低い 高い
推奨用途 表示層のみ ビジネスロジック層

複数のメジャーを1つのマトリクスで表示し、それぞれ異なるフォーマットで見やすくしたい場合は、計算グループのフォーマット文字列式を採用しましょう。

⚙️ お気軽にご相談ください
Power BIの計算グループや動的フォーマットの実装でお悩みなら、お気軽にご相談ください。

あなたの仕事にも、変化を。

無料相談から、DXの第一歩を踏み出しませんか?

お問い合わせ ブログ一覧