TopoJSON For PowerBIに関連するPower BIの操作方法についてのTipSをご紹介しています。
今回はレポートのマップのシェイプ(地図情報)で表示される「数値項目をカンマ区切り表示する方法」をご説明いたします。
なおPower BIのバージョン:は「2.81.5831.761」で確認をしています。
カンマ区切り表示にする際の残念な点
設定方法をご説明する前に、最初に残念な点を3つお伝えしたく存じます。
- 「整数」項目の場合、最初にPower Query エディターから必要な設定をしていない状態でPower BIにクエリーを適用してしまうと後から反映させることがほぼほぼできない。
- 整数項目であっても小数点以下2桁まで表示されてしまう。
- 15桁の数値までしか対応できません。
「ほぼほぼ」という表現は大変恐縮ではありますが、いろいろと試しては見たのですがまっとうな方法を見つける事ができませんでした。
「いろいろ」と書きましたが試したのは下記のような内容です。
- Power BIの「更新」をする。
- ファイル保存して落とし上げする。
- Power Queryの「詳細エディター」で「変更された型」を正しく設定し直す。
まっとうでは無いとは「実際にどのような対応方法か?」につきましては後段でご説明をしたく存じます。
地図データに反映させるExcelシートのクエリー設定
カンマ区切り表示にするために必要な設定は1ヶ所だけになりますが、一連の流れでご説明を致します。
Power BIの初期画面で、Power Queryを開くため「データの変換」をクリックします。
ここからがカンマ区切り表示のために必要な操作になります。
カンマ区切り表示にする項目は「A1101」という総人口の項目になります。
数字しか含まれていない項目のため、データ型は「整数」で読み込まれていますが、これを「10進数」に変更します。
なおPower Queryの画面では10進数に変更しても、カンマ区切り表示に変更されるわけではありませんのでご注意ください。
Power BIにおいてもカンマ区切り表示されているのは「レポート」の機能だけで、レポートの中の「テーブル」はカンマ区切り表示されますが、ビューを「テーブル」に切り換えると表示されませんのでご注意ください。
整数と10進数の違い
詳細につきまして下記マイクロソフトのドキュメントページをご参照ください。
ともに8バイトのデータ型なのですが、整数は小数点以下を考慮せず19桁まで対応するのに対して、10進数は浮動小数点なので小数点はどこに置くことができますが最大精度は15桁になります。
従いまして15桁以上の数値が必要な場合は、カンマ区切り表示することはできませんのでご注意ください。
Power BIでクエリー設定を読み込んだ後から設定を変更するには?
まっとうな方法ではできなさそうでしたので、下記にやり方をお示ししますが不都合が生じても対応することができませんので恐れ入りますが自己責任でお願いをいたします。
もしも試される場合は、必ずバックアップファイルを作ってから実施してください。
少し手間はかかるものの、危険性が少ない方法
整数型でできてしまった項目はそのままにして、元の列をコピーして新しい列を追加する方法になります。
マップのフィールド設定も一部変更が必要になりますので少し手間がかかる事と、重複したデータを持つ事になるので気持ちは進みませんが危険性は少ない方法と存じます。
Power QUeryの画面で、
①元となるA1101の列を選択しマウス右ボタンをクッリクでショートカットメニューを表示て「例から列を追加する…」を選択
②「例1」の列ができるので先頭の行をダブルクリックでショートカットメニューを表示し一番上の「元データのまま」を選択しダブルクリック
③列名をダブルクリックし変更します。
④「OK」ボタンをクリック
⑤追加した列のデータ型が「10進数」であることを確認
Power BIに戻って
⑥追加した列に設定を変更します。
コピーした列のデータ型が整数ではなく、なぜかデフォルト10進数になっているのが不思議ですが、危険なところは少なかったと思います。
危険性は高いが、手っ取り早くできる方法
クエリービューに表示されている該当クエリーをマウス右クリックしショートカットメニューを表示して「プロパティ―」を選択します。
クエリのプロパティ画面で「レポートへの読み込みを有効にする」のチェックを外します。
左図は一つの画面を2回スクリーンショットしていますが、その理由は警告メッセージがスクロールしないとすべて見えないためです。
ここで「OK」ボタンをクリックしてリボンの「閉じて適用」のアイコンをクリックしてPower Queryを閉じます。
Power BIの画面に戻ると警告メッセージに書かれていたとおりにレポートが破損した状態になっています。
そこで再度「データの変換」からPower Queryを開き、先ほど外したチェックボックスを付けて同じような操作をしてPower Queryを閉じます。
この操作をした時に「レポートが元に戻らないケースがどのくらいあるのか?」につきましては不明です。
ただし重複したデータを持たずに手っ取り早くできる対応できる事は確かなようです。
最後に
そもそも数値型のなかでのデータ型変更というのは、データベース管理者といいますか製品開発者からすれば、データの中身が保証されないので拒絶するのが一般的な対応になるのかもしれません…ただ整数から10進数への変更が反映されないのはバグのような気はしますが…
なお小数点以下2桁の表示はPower Queryで列を選び→型の変更→ロケールを使用からロケールによる型の変更を設定することができますが、残念ながら実施しても何も変わりませんでした。
また整数をカンマ区切り編集してくれる関数なりメソッドなりがあれば良いのですが、ざっとドキュメントを見た範囲では無さそうでした…
次回は凡例表示の仕方につきましてご説明いたします。
以上最後までご一読いただき誠にありがとうございました。