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

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

"メジャーの動的書式設定文字列" を使うと、個別の DAX 式を使って書式設定文字列を条件付きで適用することで、視覚エフェクトでのメジャーの表示方法を決定できます。

注意

現在、メジャーの動的書式設定文字列はプレビュー段階にあります。 プレビュー段階では、機能とドキュメントが変更される可能性があります。

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

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

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

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

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

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

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

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

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

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

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

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

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

新しいテーブルの作成

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

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

  2. [テーブルの作成] ダイアログで、次のテーブル名を入力した後、以下のテーブルをコピーして貼り付けます。

    テーブル名: Country Currency Format Strings

    Currency フォーマット
    オーストラリア Dollar AU$#,0.00
    カナダ Dollar C$#,0.00
    デンマーク Krone kr#,0
    Euro Zone ユーロ € #,0.00
    日本 Yen ¥ #,0
    スウェーデン Krona kr#,0
    スイス Franc CHF#,0.00
    イギリス ポンド £ #,0
    アメリカ合衆国 Dollar US$#,0.00
  3. テーブルが正しいことを確認し、[読み込み] をクリックします。

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

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

    テーブル名: Yearly Average Exchange Rates

    Currency Year Yearly Average Exchange Rate
    オーストラリア 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
    Euro Zone ユーロ 2022 0.951
    Euro Zone ユーロ 2021 0.846
    Euro Zone ユーロ 2020 0.877
    Euro Zone ユーロ 2019 0.893
    Euro Zone ユーロ 2018 0.848
    Euro Zone ユーロ 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. [モデル] ビューで、[Date] テーブルを右クリックし、[新しい列] を選択します。

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

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

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

新しい Yearly Average Exchange Rates テーブルと Country Currency Format Strings テーブルの間、および Yearly Average Exchange Rates テーブルと既存の Date テーブルの間のリレーションシップが必要です。

  1. リレーションシップの自動検出がオンになっている場合は、Country 列の Country Currency Format StringsYearly Average Exchange Rates の間のリレーションシップが自動的に作成されている可能性があります。 そうでない場合は、次のリレーションシップを作成します。

    • テーブル 1: Yearly Average Exchange Rates
    • テーブル 1 の列: Country
    • カーディナリティ: 多対一
    • テーブル 2: Country Currency Format Strings
    • テーブル 2 の列: Country
    • このリレーションシップをアクティブにする: はい
    • クロス フィルターの方向: 単一

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

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

  2. リレーションシップの自動検出がオンになっている場合は、Country 列の Country Currency Format StringsSales territory の間のリレーションシップが作成されている可能性があります。 ただし、このリレーションシップはここでのモデルには適していません。 [モデル] ビューで、このリレーションシップを削除します。

  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 measures という名前を付け、[読み込み] をクリックします。 このテーブルには、新しいメジャーが含まれます。

メジャーを作成する

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

    Sales Amount = SUM(Sales[Sales Amount])
    

    次のようになります。

    売上高メジャー DAX 数式のスクリーンショット。

  2. Sales measures[Column1] を右クリックし、[レポート ビューで非表示にする] を選択します。 これによって営業メジャーがメジャー グループに変わり、次のように [データ] ペインの上部にメジャー グループのアイコンで表示されるようになります:

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

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

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

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

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

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

    Sales measures メジャー グループは、次のようになります。変換後の売上高メジャーの数式のスクリーンショット。

レポートを作成する

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

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

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

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

  4. 視覚化をコピーして貼り付けると、2 つの折れ線グラフの視覚化が表示されます。 2 つ目の折れ線グラフの視覚化をテーブルの視覚化に変更し、次のように折れ線グラフの下に移動します。

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

  5. スライサーの視覚化をレポート ページに追加します。 [書式] リボンで、Country Currency Format Strings テーブルの Country をスライサーに追加します。

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

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

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

  7. 必須ではありませんが、視覚化のプロパティを変更するとレポートを改善できます。

    スライサー

    • スライサーの設定: 単一選択
    • サイズとスタイル、パディング: 10 px、すべての端
    • サイズとスタイル、視覚化の境界線: 薄い灰色、10 px の丸い角
    • スライサーの設定、スタイル: タイル
    • スライサー ヘッダー: オフ
    • 値、境界線: 左、#333333、線の幅 6

    テーブル

    • サイズとスタイル、パディング: 10 px、すべての端
    • サイズとスタイル、視覚化の境界線: 薄い灰色、10 px の丸い角
    • グリッド、水平グリッド線: 白、幅 2
    • グリッド、垂直グリッド線: 白、幅 2
    • グリッド、境界線: 白
    • グリッド、オプション: 行の間隔 2
    • 値、値: 背景色 #F6F4F4
    • 値、値: 代替の背景色 #F6F4F4
    • 列ヘッダー、テキスト: 太字、テキストの色は白、背景色 #0D6ABF

    折れ線グラフ

    • サイズとスタイル、パディング: 10 px、すべての端
    • サイズとスタイル、視覚化の境界線: 薄い灰色、10 px の丸い角
    • タイトル、サブタイトル: オン
    • Y 軸、タイトル: オフ
    • Y 軸: オフ
    • マーカー: オン
    • データ ラベル: オン
    • データ ラベル、値: 太字、青

    キャンバス (省略可能)

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

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

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

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

スライサーで別の 名を選択すると、変換された売り上げ金額の測定結果が視覚的に表示されますが、その国や地域に適した形式ではありません。

  1. [データ] ペイン >[Sales measures] で、[Converted Sales Amount] を選択します。

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

  3. 数式バーの左側にあるドロップダウン リスト ボックスに [書式] と表示され、数式バーの数式には書式設定文字列が表示されるはずです。 書式設定文字列を次の DAX 式に置き換え、Enter キーを押します。

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

    次のようになります。

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

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

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

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

既知の問題と考慮事項

プレビュー期間中は、次の問題と制限事項に対処中です。

  • 視覚化には、書式設定文字列の表示方法に影響を与える可能性がある書式設定オプションがあります。 視覚化で書式設定が予期されないかたちで表示される場合は、視覚化の [書式] オプションに移動し、[表示単位] を検索して、[自動] から [なし] に変更します。

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

  • メジャー自体は、その動的書式設定文字列でその名前を使って (例: [Measure A]) 直接参照するか、SELECTEDMEASURE() を使って間接的に参照することができます。

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

  • Analysis Services の DirectQuery では、ライブ接続レポートで [このモデルに変更を加える] をクリックすると、Analysis Services 経由の DirectQuery に接続がシフトされます。 一般に、リモート モデル メジャーの書式設定文字列を変更できます。 プレビュー期間中:

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