TopoJSON For PowerBIに関連するPower BIの操作方法についてのTipSをご紹介しています。
今回はレポートのマップのシェイプ(地図情報)で表示される「数値項目をカンマ区切り表示する方法」のパート2として別フィールドにカンマ区切りのテキスト項目を定義するやり方をご説明いたします。
なおPower BIのバージョン:は「2.81.5831.821」で確認をしています。
カスタム列を追加する
カスタム列の追加につきましては前回の「Power BIのマップのシェイプで凡例を表示する方法」の中で画面付きでご説明しておりますので、今回は重複するところはメニュー選択の仕方でご説明いたします。
かステム列の設定画面を開く
Power BIのホームメニューの「クエリ」リボンの「データの変換」をクリック
Power Queryが開くので、メニューの「列の追加」→「全般」リボンの「カスタム列」をクリックするとカスタム列の画面が開きます。
カスタム列画面で、「使用できる列」から元となる項目「A1101」を選択し「<<挿入」ボタンをクリックすると、カスタム列の式に「[A1101]」がセットされますので、「新しい列名」に「A1101d」と入力します。
以上でカスタム列を追加する準備が終わり、ここから今回の本題に入ります。
数値をテキスト形式のカンマ区切りに変換する
ここでPower Query M関数から、つぎのような関数を使用します。
Number.ToText(引数, 指定形式) Microsoft Docsの当該関数へ | 指定形式に従って引数(数値)をテキスト値に変換 指定形式に”n”を指定すると、区切り記号と小数点を含む形式に 【例】 Number.ToText(12345,”n”)→”12,345.00″ |
Text.BeforeDelimiter(引数, 区切り文字) Microsoft Docsの当該関数へ | 区切り文字よりも前の引数(テキスト)を返します 【例】 Text.BeforeDelimiter(“12,345.00″,”.”)→”12,345″ |
=Text.BeforeDelimiter(Number.ToText([A1101],"n"),".")
- Number.ToText([A1101],”n”)
この結果を引数にしてつぎの関数を読んでいます。 - Text.BeforeDelimiter(引数,”.”)
ピリオドを区切り文字に指定
赤下線の「構文エラーは検出されませんでした。」を確認して、「OK」ボタンをクリック
ただここで残念なのはデータ型がテキストと見なされて表示位置が左寄せになっている点です。
一覧表で見た時にカンマ区切り表示されいることで美しく見えるためには、数字が右寄せになっていて、カンマの位置がそろっていることがポイントになると思います。
でもPower Queryでの見え方は気にしなくても大丈夫です。
問題はPower BIで「どのように見せるか?」です。
Power BIでのデータの見せ方
Power Queryのホームメニューから「閉じて適用」のアイコンをクリックして、Power BIに戻ります。
ここで先ほど設定した「A1101d」の項目(画面赤下線)をフィールドからヒントにドラックします。
すると地図のポップアップでは小数点以下が表示されないカンマ区切りになっています。
なおこのポップアップ表示では数値項目も含めたすべての項目が左寄せで表示されています。
ちなみに一つ上のA161001はパーセント表示も左寄せになっています。
「テーブルとして表示する」を使ってデータを表示すると…
この方法で表示される表では先ほどの「A1101d」の項目(画面赤枠)は左寄せで表示されてしまいます。
またテーブルのKEY項目をクリックしても地図とは連携していない状態です。
従いまして「レポートに戻る」(画面赤下線)をクリックして元に戻っていただき、別な方法をご説明したく存じます。
視覚化の中の「テーブル」アイコンを使う
①「テーブル」アイコンをクリックするとレポートにテーブルの空エリア(赤枠)が表示されます。
②値の欄にテーブルに表示する項目をフィールドからドラッグして設定します。
なお「A1101d」の列はデフォルト左寄せで表示されています。
③テーブルの「書式アイコン」をクリック
④「フィールドの書式」をクリック
⑤「A1101d」項目をプルダウンメニューから選択
⑥「配置」がデフォルト「自動」になっているので、プルダウンメニューから「右に移動」を選択
⑦これにより「A1101d」の項目が右寄せで表示されるようになります。
またテーブルの中のレコードを一つクリックすると、地図と連動して場所が表示されるようになります。
⑧これは逆に地図をクリックした時にテーブルも該当レコードに絞られて表示されるようになります。
ただ、お気づきのように1点問題がありまして、「A1101d」項目はデータがテキスト形式のため合計が表示されません。
結局すべてを上手く表現することはできないことになりますが、合計が必要な場合は、元データの「A1101」とKEY項目だけの別テーブルを作りレポートに表示する事になります。
この部分だけは小数点以下2桁が表示されてしまいます。
なおテーブルの合計欄を表示する・しないは、テーブルの書式の「フィールド書式」の上にある「合計」のオン・オフで切り替える事ができます。
最後に
デフォルトの機能として提供されていない事を実装しようとすると、どこかにほころびが生じてしまう事になりがちです。
今回も「御多分に洩れず」の結果になってしまいましたが「何が必須の要件になるか?」によって対応方法が変わってくる事と存じます。
次回はフィルダー設定につきましてご紹介いたします。
以上最後までご一読いただき誠にありがとうございました。