Power BI レポートの数字の単位をスライサーで変更できるようにする (千円～百億円など)

# はじめに
2023年4月にプレビュー機能として公開された、[メジャーの動的書式設定文字列](https://learn.microsoft.com/ja-jp/power-bi/create-reports/desktop-dynamic-format-strings)を使って、スライサーの切り替えで、Power BI レポートに表示されている数字の表示単位を切り替える方法をご紹介します。

※初版では、一部の単位のみでしたが、千円～百億円まで桁数自在に設定できるよう修正しました。

# どんなことができる？
この機能を利用することで、スライサーの選択で「百万円」や「億円」などを表示単位を切り替えたい場合や、国によって通貨単位を切り替えて表示したいなど、様々な条件に基づいてメジャーの書式設定を動的に設定することができます。

- 以下例：スライサーで金額の表示単位変更 
    - 左の数値(売上)が何も書式設定していない数値
    - 右の数値(売上(書式有))がスライサーの切り替えで書式が反映される数値
    
- 百万円単位で表示
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2642886/269bbe89-0bfe-b9c8-a35a-3b6cbbd6f204.png)

- 億円単位で表示
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2642886/647cf44d-97ff-dd02-0186-dd7bb1f7e324.png)

# 使用するデータ
今回は簡単な売上データを使用します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2642886/1a9b4c76-3656-f89f-8a89-f8b1791fa69a.png)

# 手順

1. 表示単位選択用のテーブル作成
※ Excel などで作ったものを取り込んでも可
    - Power BI Desktop で、「ホーム」→ 「データの入力」をクリック
    ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2642886/02bf84fb-97eb-a52e-015a-a432027c97df.png)

    - 表示単位用のテーブルを入力
    以下のように入力 → テーブル名は「単位」
    ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2642886/0d26e925-7edd-6368-03b1-644ab6141027.png)
    
        |単位|書式|ソート順|分母|
        |:--|:--|--:|--:|
        |千円|#,##0"千円",|1|1|
        |万円|#,##0"万円",|2|10|
        |十万円|#,##0"十万円",|3|100|
        |百万円|#,##0"百万円",,|4|1|
        |千万円|#,##0"千万円",,|5|10|
        |億円|#,##0"億円",,|6|100|
        |十億円|#,##0"十億円",,,|7|1|
        |百億円|#,##0"百億円",,,|8|10|

        ※ 百万円などの書式設定に関してはこちらの記事が参考になります。
        [Power BI で数字を百万単位で表示する方法](https://qiita.com/ayumito/items/82ecf90091006261834e)

1. メジャー作成
    暗黙のメジャーでは動的書式は設定できないので、明示的にメジャーを作成
    表示単位で設定した分母で割り算を行う (表示桁数の調整のため)
    ``` 
    売上(書式有) = DIVIDE(SUM('売上'[売上]), SELECTEDVALUE('単位'[分母], 1), 0)
    ```

1. 作成メジャーの書式をダイナミックへ変更
    作成したメジャーを選択した状態で、「メジャーツール」→「書式」で ダイナミックを選択する
    書式に DAX を記述できるようになる
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2642886/3fac751f-f936-05fc-ba17-2722ebcd3288.png)

1. メジャーの書式をDAXで記述
    後ほど作成するスライサーの選択で書式を変更できるよう、書式の DAX 式として以下を入力
    ```
    SELECTEDVALUE ('単位'[書式])
    ```
    ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2642886/8daadd13-434b-fc47-0b68-dac9ffaf480a.png)
    ※ SELECTEDVALUE については[こちら](https://learn.microsoft.com/ja-jp/dax/selectedvalue-function)    

1. ビジュアル配置
    作成した表示単位をスライサー、数値を各ビジュアルなどで表現し配置
    (スライサーの表示順は[列の並べ替え](https://learn.microsoft.com/ja-jp/power-bi/create-reports/desktop-sort-by-column?tabs=powerbi-desktop)でソート順を利用して調整ください)
    ※ビジュアル配置・操作例
    - 千円
    ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2642886/0c1fcef2-3fe4-5144-967f-cc2826e660d2.png)
    - 百万円
    ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2642886/3d6776a4-c7cf-ef43-b904-8723a038ffe9.png)
    - 億円
    ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2642886/ba6aa200-0619-44db-4dc8-83c12aba8485.png)




# 完成したサンプルファイル
当記事紹介した Tips のサンプルファイルは[こちら](https://github.com/RyusukeGondo/DynamicFormattingString)からダウンロード可能です。


# まとめ
これまでは複雑な DAX を書いたり、ブックマークでビジュアル表示を切り替えて対応していた表示単位の切り替えですが、この機能がリリースされたことによりかなり楽に実装ができるようになりました。ぜひ利用してみてください。