
動的書式設定文字列とは?
通貨コードによって金額表示を変えたい場合ありませんか。
JPYは小数点表示をしないですが、EURの通貨は金額を小数点表示をします。
| 通貨コード | 金額 |
| JPY | 1,977 |
| EUR | 55.55 |
上記のデータ通りにPower BIレポートでも一つの列で表示したい場合、
Power BI Desktop での書式設定は列ツールから設定するので、書式メニュからは一つの書式しか設定できません

ここで使いたい機能が「メジャーの動的書式設定文字列」です。
Power BI Desktopで「動的書式設定文字列」という機能があります。
これは、DAX式を使って表示形式(フォーマット)を条件によって変化させる仕組みです。
メリット
- 通常の FORMAT 関数では、数値を文字列に変換してしまうため、チャートや可視化で数値として扱えなくなるケースがあります。
- 動的書式設定文字列では、データ型を変えずに(数値のまま)書式を変えられるので数値としての集計・可視化機能が損なわれません。
- 多言語・多通貨・多ユニットのレポートを作成する際、「1つのメジャーで書式も切り替わる」という柔軟性が得られます。
- 利用者がスライサーやフィルターで条件を変えたときに、表示形式も連動して変化させたいときに便利です。
実装ステップ
下記のMicrosoftLearnサイトを参考にして、実装ステップを説明します。
Power BI Desktop でメジャーの動的書式設定文字列を作成する – Power BI | Microsoft Learn
事前準備
① 通貨と金額データの二つのテーブルを用意します。
<通貨>テーブル
通貨コード・小数点表示桁数のデータ

<金額データ>テーブル
通貨コード・金額のデータ

② 準備したテーブルのリレーションシップ設定をします。
(キー項目は通貨コード、クロスフィルターは単一設定)


③メジャーを作成します。

動的書式設定文字列を有効にする
[データ] ペインで、先ほど作成したメジャーを選択します。

リボンの [メジャー ツール] → [書式] セクション → [書式] のドロップダウンから「ダイナミック」を選択します。

数式バーの左側に「書式」ドロップダウンが表示され、書式設定文字列をDAXで指定できるようになります。

書式用DAX式を作成する
数式バーの左側を「書式」にして、下記のDAX式を入れます。

VAR dec = SELECTEDVALUE ( ‘通貨'[小数点桁数], 0 )
RETURN “#,0” & IF ( dec > 0, “.” & REPT ( “0”, dec ), “” )
<DAX式の解析>
VAR dec = SELECTEDVALUE('通貨'[小数点桁数], 0)
変数の dec に現在選択されている通貨の小数点桁数を取得します。
SELECTEDVALUE()は、現在のコンテキストで一意の値を返す関数。
例:JPY → 0、EUR → 2- もし複数の通貨が同時に選択されていたり、何も選択されていない場合は、デフォルト値
0を使う。
RETURN "#,0" & IF(dec > 0, "." & REPT("0", dec), "")
ここが動的な書式文字列を作る部分です。
"#,0"→ 「3桁区切りで整数表示」を表すフォーマット。IF(dec > 0, "." & REPT("0", dec), "")- 小数点桁数が0より大きければ、
"." & REPT("0", dec)を追加 - そうでなければ(=0なら)、何も追加しない。
- 小数点桁数が0より大きければ、
-
REPT("0", dec)は"0"を指定回数くり返す関数です。
書式確認
通貨コード別金額表示を確認するために、下記の項目を設定して、テーブルを作成します。

通貨コードによって金額表示が小数点ありなしで表示されることが確認できます。

まとめ
- 動的書式設定文字列は、数値のまま「表示形式だけを条件によって変えたい」ニーズに非常に有効な機能です。
- 多通貨/多国/多ユニットのレポート設計時には特に活躍します。
- ただし、実装には DAX・モデル設計(リレーションシップ/テーブル構成)も関わるため、事前に構成を理解しておくことが重要です。
- プレビュー機能であること・視覚化側の表示設定が影響することを併せて留意してください。


コメント