次の方法で共有


メジャーの動的書式設定文字列を作成する

適用対象: Power BI Desktop Power BI サービス

メジャーの動的書式指定文字列を使用すると、別のデータ分析式 (DAX) 式を使用して書式指定文字列を条件付きで適用することで、ビジュアルでのメジャーの表示方法を決定できます。

動的書式設定文字列は、FORMAT 関数を使用することで生じる固有の欠点を克服します。 FORMAT を使用すると、数値データ型も文字列として返されます。これは、数値を必要とするグラフなどのビジュアルでは機能しない可能性があります。 動的書式設定文字列を使うと、メジャーでそのデータ型が保持され、文字列データ型への変更が強制されません。 これにより、コンテキストに応じて異なる書式設定文字列がメジャーに適用されます。

計算グループで動的書式指定文字列を使用することもできます。 メジャーの動的書式指定文字列で計算グループを操作するのと同じ DAX パターンを使用できますが、スコープはモデル内のすべてのメジャーではなく個々のメジャーに制限されます。 詳しくは、計算グループ - 動的書式設定文字列に関する記事を参照してください。

動的書式設定文字列を作成する

動的書式設定文字列を作成するには

  1. [データ] ペインで、動的書式設定文字列を指定するメジャーを選択します。

  2. [メジャー ツール] リボン >[書式設定] セクション >[書式] リスト ボックスで、[動的] を選択します。 [ 書式 ] が既に選択されている新しいドロップダウンが、DAX 数式バーの左側に表示されます。 このドロップダウンは、静的メジャー DAX 式と動的書式指定文字列 DAX 式を切り替える方法です。 [動的] に切り替える前に使用されていた静的書式設定文字列は、DAX 数式バーの文字列として事前設定されます。

    [書式] ドロップダウンのスクリーンショット。

  3. メジャーに適切な書式設定文字列を出力する DAX 式で、文字列を上書きします。 たとえば、次の式は、 Country/Region Currency Format Strings テーブルから必要な通貨書式指定文字列 を検索します。

    動的な形式メジャー式のスクリーンショット。

  4. 動的書式設定文字列が視覚エフェクトで動作することを確認します。

    動的書式指定文字列を削除し、静的書式指定文字列の使用に戻すには、[ 書式設定 ] セクションの [ >Format ] ドロップダウンで、別の書式オプションを選択します。 この操作は元に戻すことができないため、続行するかどうかを確認するダイアログが表示されます。 もう一度動的書式指定文字列を使うように戻す場合は、DAX 式を再入力する必要があります。

    [書式変更の警告] のスクリーンショット。

新機能について学習する最善の方法は、自分で試してみることです。 「DAX サンプル モデル」で入手できるサンプル Adventure Works 2020 PBIX ファイルを使って、それを行うことができます。 サンプル モデルを使って、通貨の換算を追加し、換算された年別の売上高を表示することができます。 ファイルをダウンロードした後、Power BI Desktop で開いてください。

新しいテーブルの作成

サンプル モデルには、動的書式設定文字列を作成して使うために必要なすべてのデータが含まれているわけではありません。 まず初めに、2 つのテーブルを追加する必要があります。

  1. [ホーム] リボンで [データの入力] を選択します。

  2. [テーブルの作成] ダイアログで、[名前] フィールドに「国/地域の通貨書式指定文字列」と入力し、次の表をコピーして貼り付けます。

    国/地域 Currency フォーマット
    オーストラリア Dollar AU$#,0.00
    カナダ Dollar C$#,0.00
    デンマーク Krone kr#,0
    ユーロ 圏 ユーロ € #,0.00
    日本 Yen ¥ #,0
    スウェーデン Krona kr#,0
    スイス Franc CHF#,0.00
    イギリス ポンド £ #,0
    米国 Dollar US$#,0.00
  3. テーブルが正しく表示されていることを確認し、[ 読み込み] を選択します。

    [テーブルの作成] ダイアログのスクリーンショット。

  4. 次のテーブルについて、上記の手順を繰り返します。

    テーブル名: Yearly Average Exchange Rates

    国/地域 Currency Year 年間平均為替レート
    オーストラリア Dollar 2022 1.442
    オーストラリア Dollar 2021 1.332
    オーストラリア Dollar 2020 1.452
    オーストラリア Dollar 2019 1.439
    オーストラリア Dollar 2018 1.34
    オーストラリア Dollar 2017 1.358
    カナダ Dollar 2022 1.301
    カナダ Dollar 2021 1.254
    カナダ Dollar 2020 1.341
    カナダ Dollar 2019 1.327
    カナダ Dollar 2018 1.297
    カナダ Dollar 2017 1.35
    デンマーク Krone 2022 7.077
    デンマーク Krone 2021 6.29
    デンマーク Krone 2020 6.538
    デンマーク Krone 2019 6.67
    デンマーク Krone 2018 6.319
    デンマーク Krone 2017 6.864
    ユーロ 圏 ユーロ 2022 0.951
    ユーロ 圏 ユーロ 2021 0.846
    ユーロ 圏 ユーロ 2020 0.877
    ユーロ 圏 ユーロ 2019 0.893
    ユーロ 圏 ユーロ 2018 0.848
    ユーロ 圏 ユーロ 2017 0.923
    日本 Yen 2022 131.454
    日本 Yen 2021 109.817
    日本 Yen 2020 106.725
    日本 Yen 2019 109.008
    日本 Yen 2018 110.424
    日本 Yen 2017 116.667
    スウェーデン Krona 2022 10.122
    スウェーデン Krona 2021 8.584
    スウェーデン Krona 2020 9.205
    スウェーデン Krona 2019 9.457
    スウェーデン Krona 2018 8.703
    スウェーデン Krona 2017 8.894
    スイス Franc 2022 0.955
    スイス Franc 2021 0.914
    スイス Franc 2020 0.939
    スイス Franc 2019 0.994
    スイス Franc 2018 0.979
    スイス Franc 2017 1.024
    イギリス ポンド 2022 0.811
    イギリス ポンド 2021 0.727
    イギリス ポンド 2020 0.779
    イギリス ポンド 2019 0.784
    イギリス ポンド 2018 0.75
    イギリス ポンド 2017 0.808

Year 列を作成する

既存の Date テーブルには新しい Year 列が必要です。

  1. モデル ビューで、[日付] テーブルを右クリックし、[新しい列] を選択します。

  2. DAX 数式バーに、次の式を入力します: Year = YEAR([Date])Enter キーを押します。

    DAX 数式バーの「Year」数式のスクリーンショット。

リレーションシップの作成

新しい年平均為替レートテーブルと国/地域通貨書式指定文字列テーブル、および年平均為替レートテーブルと既存の日付テーブルの間のリレーションシップが必要です。

  1. リレーションシップの自動検出がオンになっている場合 ([列ツール] タブの [リレーションシップの管理] を選択し、[自動検出] を選択します)、国/地域の通貨書式指定文字列[国/地域] 列の年平均為替レートの関係が自動的に作成されている可能性があります。 そうでない場合は、列ツール[新しいリレーションシップ] ボタンを使用してこのリレーションシップを作成します>管理リレーションシップ:

    • テーブル 1: Yearly Average Exchange Rates
    • 表 1 列: 国/地域
    • カーディナリティ: 多対一
    • 表 2: 国/地域の通貨書式指定文字列
    • 表 2 列: 国/地域
    • このリレーションシップをアクティブにする: はい
    • クロス フィルターの方向: 単一

    リレーションシップは次のようになるはずです。

    国/地域の通貨書式指定文字列と年平均為替レートのリレーションシップ プロパティのスクリーンショット。

  2. リレーションシップの自動検出がオンになっている場合は、[国/地域] 列の国/地域の通貨書式指定文字列販売区域の間にリレーションシップが作成されている可能性があります。 ただし、このリレーションシップはここでのモデルには適していません。 このリレーションシップを削除します。

  3. 代わりに、Year 列の Yearly Average Exchange RatesDate の間のリレーションシップを作成します。

    • テーブル 1: Yearly Average Exchange Rates
    • テーブル 1 の列: Year
    • カーディナリティ: 多対多
    • テーブル 2: Date
    • テーブル 2 の列: Year
    • このリレーションシップをアクティブにする: はい
    • クロス フィルターの方向: 単一 ('Yearly Average Exchange Rate' によって 'Date' をフィルター処理)

    リレーションシップは次のようになるはずです。

    リレーションシップのスクリーンショット。

  4. モデルを保存します。

メジャー グループ テーブルを作成する

メジャー グループは、さまざまなメジャーを 1 つのテーブルにまとめて整理するのに役立ちます。

  1. [ホーム] リボンで [データの入力] を選択します。

  2. [テーブルの作成] ダイアログで、値を空白のままにします。 Sales 指標テーブルに名前を付け、[読み込み] を選択します。 このテーブルには、新しいメジャーが含まれます。

メジャーを作成する

  1. データ ペインで、Sales 指標を展開して右クリックし、新しい指標を選択します。 DAX 数式バーに次の DAX 式を入力し、Enter キーを押します。

    Sales Amount = SUM(Sales[Sales Amount])
    

    次のようになります。

    Sales amount measure DAX 数式のスクリーンショット。

  2. Sales 測定値で列 1 を右クリックし、レポート ビューで非表示 を選択します。 これにより 、Sales メジャーが メジャー グループに変更されます。このメジャー グループは、[データ] ウィンドウの上部に次のようにメジャー グループ アイコンと共に表示されます。

    Sales メジャー グループの Column1のスクリーンショット。

  3. これで、換算レートを計算するメジャーを作成できるようになりました。 Sales メジャーを右クリックし、新しいメジャーを選択してから、DAX 数式バーに次の式を入力し、Enter キーを押します。

    Exchange Rate (Yearly Avg) = 
    IF (
        ISBLANK ( SELECTEDVALUE ( 'Country/Region Currency Format Strings'[Country/Region] ) )
            || SELECTEDVALUE ( 'Country/Region Currency Format Strings'[Country/Region] ) = "United States",
        1,
        AVERAGE ( 'Yearly Average Exchange Rates'[Yearly Average Exchange Rate] )
    )
    
    

    次のようになります。 DAX エディターでの為替レート DAX 数式のスクリーンショット。

  4. 次に、別のメジャーを作成して、 Sales Amount メジャーを他の通貨に変換します。 Sales メジャーを右クリックし、[新しいメジャー] を選択し、DAX 数式バーに次の式を入力して、Enter キーを押します。

        Converted Sales Amount = 
        SUMX('Date',
        CALCULATE( [Sales Amount] * [Exchange Rate (Yearly Avg)]))
    
    

    Sales メジャー グループは、次のように表示される必要があります。変換後の売上金額メジャー数式のスクリーンショット。

レポートを作成する

  1. [レポート ビュー] に移動します。 新しい空白ページをレポートに追加します。

  2. 折れ線グラフの視覚化を新しいレポート ページに追加します。 メジャーの動的書式指定文字列を追加する前に、このビジュアルを使用してメジャーを表示します。

  3. [データ] ペイン >[Sales measures] で、[Converted Sales Amount] を選択します。 他の場所を選択せずに、[日付] テーブルの [年] も選択します。

    レポート ビューの折れ線グラフビジュアルのスクリーンショット。

  4. 2 つの折れ線グラフビジュアルが作成されるように、ビジュアルをコピーして貼り付けます。 2 番目の折れ線グラフビジュアルをテーブル ビジュアルに変更し、次のように折れ線グラフの下に移動します。

    折れ線グラフのコピー方法のビジュアルスクリーンショット。

  5. [視覚化] ウィンドウで [リスト スライサー] を選択して、リスト スライサー ビジュアルをレポート ページに追加します。 [データ] ウィンドウで、[国/地域の通貨書式指定文字列] テーブルから [国/地域] を選択して、スライサーに追加します。

    国/地域スライサーのスクリーンショット。

  6. 次のように、適切なレイアウトになるまで視覚化の配置を調整します。

    ビジュアルの並べ替えのスクリーンショット。

  7. 必須ではありませんが、ビジュアル プロパティを変更してレポートを作成できます。 [視覚化] ウィンドウの [ビジュアルの書式設定] ボタンを使用して、次の変更を行います。

    Slicer

    • [ビジュアル] タブ >[スライサーの設定]>単一選択>オン
    • [全般 ] タブ >プロパティ>Padding: 10 px、すべてのエッジ
    • 全般 タブ >Effects>視覚的な境界: オン、薄い灰色、10px の丸みのある角
    • [全般 ] タブ >タイトル: オフ
    • [ビジュアル ] タブ >Buttons>Border: #333333、 6 行幅

    テーブル

    • [全般 ] タブ >プロパティ>Padding: 10 px、すべてのエッジ
    • 全般タブ>Effects>視覚的な境界線: オン、薄い灰色、10ピクセルの角丸
    • ビジュアルタブ>グリッド>水平グリッド線: オン、白、幅2
    • ビジュアル タブ >グリッド>縦方向グリッド線: オン、白、幅2
    • ビジュアルタブ >Grid>境界線: 白
    • [ビジュアル ] タブ >Grid>Options: 2 行のパディング
    • [ビジュアル ] タブ >Values>背景の色: #F6F4F4
    • ビジュアル タブ >>代替背景色: #F6F4F4
    • [ビジュアル ] タブ >列ヘッダー>テキスト: 太字、テキストの色 (白)、背景色 #0D6ABF

    折れ線グラフ

    • [全般 ] タブ >プロパティ>Padding: 10 px、すべてのエッジ
    • [全般 ] タブ >Effects>ビジュアルの境界線: オン、ライト グレー、10 px 角丸
    • [全般] タブ >プロパティ>タイトル>サブタイトル: オン
    • [ビジュアル ] タブ >Y 軸>タイトル: オフ
    • [ビジュアル ] タブ >Y 軸>: オフ
    • [ビジュアル ] タブ >マーカー: オン
    • [ビジュアル ] タブ >データ ラベル: オン
    • [ビジュアル ] タブ >データ ラベル>Value: 太字、青

    Canvas (省略可能)

    • キャンバスの設定>キャンバスの背景: 薄い灰色、85% の透明度

    これらの視覚化プロパティを使うと、次のような見栄えのよいレポート ページになります。

    ビジュアルの灰色のキャンバスの背景のスクリーンショット。

動的書式設定文字列を作成する

スライサーで別の 国/地域 名を選択すると、変換された Sales Amount メジャーの結果がビジュアルで表示されますが、その国/地域に適した形式ではありません。

  1. [データ] ウィンドウの [売上メジャー] で、[換算された売上金額] を選択します。

  2. [メジャー ツール] リボンの [書式] ドロップダウンから [動的] を選択します。

  3. 数式バーの左側のドロップダウンに [書式] が表示され、数式バーの数式に書式文字列が表示されます。 書式指定文字列を次の DAX 式に置き換え、 Enter キーを押します。

    SELECTEDVALUE ( 'Country/Region Currency Format Strings'[Format], "\$#,0.00;(\$#,0.00);\$#,0.00" )
    

    次のようになります。

    国/地域の通貨書式指定文字列の動的な数式のスクリーンショット。

  4. スライサーで別の国/地域を選択します。 テーブルと折れ線グラフのビジュアルには、その国/地域または地域の通貨換算金額が正しい形式で表示されます。 スライサーで別の国や地域を選択して、画面表示がどのように変化するかを確認してみてください。

    変換後の売上額ビジュアルのスクリーンショット。

  5. モデルを保存します。

既知の問題と考慮事項

  • ビジュアルには、書式指定文字列の表示方法に影響する可能性がある書式設定オプションがあります。 ビジュアルに書式設定が予期せず表示されている場合は、ビジュアル の視覚化>表示オプションの書式設定 に移動し、 表示単位 を検索して 自動 から なしに変更します。

    自動からなしへの表示単位のスクリーンショット。

  • メジャー自体を動的書式指定文字列で直接参照する場合は、その名前 ([Measure A] など) を使用するか、 SELECTEDMEASURE()を使用して間接的に参照できます。

  • メジャーの動的書式設定文字列は、モデルのメジャー専用です。 ライブ接続レポートに追加できるレポートのメジャーには、メジャーに対して動的な書式文字列を使用することはできません。

  • Analysis Services 用 DirectQuery では、ライブ接続レポートで [このモデルに変更を加える ] を選択すると、Analysis Services 経由で DirectQuery への接続がシフトされます。 一般に、リモート モデル メジャーの書式設定文字列を変更できます。 メジャーの動的フォーマット文字列を使用する場合:

    • 動的書式設定文字列が定義されたリモート モデル メジャーでは、静的書式設定文字列または別の動的書式設定文字列の DAX 式への書式設定文字列の変更がブロックされます。
    • リモート モデル メジャーを静的書式指定文字列から、ローカル モデルで定義された動的書式指定文字列 DAX 式に変更することはできません。
    • ローカル モデルのメジャーでは、メジャーに対する動的書式設定文字列の使用がブロックされます。