PR

Power BIで数値項目をカンマ区切り表示にする方法(PART 1)

Power BIのTips
この記事は約7分で読めます。

TopoJSON For PowerBIに関連するPower BIの操作方法についてのTipSをご紹介しています。
今回はレポートのマップのシェイプ(地図情報)で表示される「数値項目をカンマ区切り表示する方法」をご説明いたします。

なおPower BIのバージョン:は「2.81.5831.761」で確認をしています。

スポンサーリンク

カンマ区切り表示にする際の残念な点

設定方法をご説明する前に、最初に残念な点を3つお伝えしたく存じます。

  1. 「整数」項目の場合、最初にPower Query エディターから必要な設定をしていない状態でPower BIにクエリーを適用してしまうと後から反映させることがほぼほぼできない
  2. 整数項目であっても小数点以下2桁まで表示されてしまう。
  3. 15桁の数値までしか対応できません。

「ほぼほぼ」という表現は大変恐縮ではありますが、いろいろと試しては見たのですがまっとうな方法を見つける事ができませんでした。

「いろいろ」と書きましたが試したのは下記のような内容です。

  • Power BIの「更新」をする。
  • ファイル保存して落とし上げする。
  • Power Queryの「詳細エディター」で「変更された型」を正しく設定し直す。

まっとうでは無いとは「実際にどのような対応方法か?」につきましては後段でご説明をしたく存じます。

地図データに反映させるExcelシートのクエリー設定

カンマ区切り表示にするために必要な設定は1ヶ所だけになりますが、一連の流れでご説明を致します。

Power BIの初期画面で、Power Queryを開くため「データの変換」をクリックします。

  1. 「新しいソース▼」の▼をクリックしショートカットメニューを開き、Excelをクリック
  2. 読み込むブックを選択して「開く」
  3. ナビゲーター画面でシートを選択して「OK」

  • KEY項目は数字だけのために「整数」で読み込まれていますが、これを「テキスト」に変換します。
  • 列タイプの変更画面で「現在のものを置換」をクリック

ここからがカンマ区切り表示のために必要な操作になります。
カンマ区切り表示にする項目は「A1101」という総人口の項目になります。
数字しか含まれていない項目のため、データ型は「整数」で読み込まれていますが、これを「10進数」に変更します。

  • A1101の列を選択してデータ型を整数から10進数に変更します。
  • 先ほどと同様に列タイプの変更をします。
  • 「閉じて適用」のアイコン部分をクリックするとPower Queryは終了になります。

なおPower Queryの画面では10進数に変更しても、カンマ区切り表示に変更されるわけではありませんのでご注意ください。

続けてPower BIで「マップのシェイプ」を設定します。

先ほどカンマ区切り表示に設定したA1101はヒント欄に設定します。

赤枠のところでカンマ区切り表示されている事が解ります。

Power BIにおいてもカンマ区切り表示されているのは「レポート」の機能だけで、レポートの中の「テーブル」はカンマ区切り表示されますが、ビューを「テーブル」に切り換えると表示されませんのでご注意ください。

整数と10進数の違い

詳細につきまして下記マイクロソフトのドキュメントページをご参照ください。

ともに8バイトのデータ型なのですが、整数は小数点以下を考慮せず19桁まで対応するのに対して、10進数は浮動小数点なので小数点はどこに置くことができますが最大精度は15桁になります。

従いまして15桁以上の数値が必要な場合は、カンマ区切り表示することはできませんのでご注意ください。

Power BIでクエリー設定を読み込んだ後から設定を変更するには?

まっとうな方法ではできなさそうでしたので、下記にやり方をお示ししますが不都合が生じても対応することができませんので恐れ入りますが自己責任でお願いをいたします。

もしも試される場合は、必ずバックアップファイルを作ってから実施してください。

少し手間はかかるものの、危険性が少ない方法

整数型でできてしまった項目はそのままにして、元の列をコピーして新しい列を追加する方法になります。

マップのフィールド設定も一部変更が必要になりますので少し手間がかかる事と、重複したデータを持つ事になるので気持ちは進みませんが危険性は少ない方法と存じます。

Power QUeryの画面で、
①元となるA1101の列を選択しマウス右ボタンをクッリクでショートカットメニューを表示て「例から列を追加する…」を選択
②「例1」の列ができるので先頭の行をダブルクリックでショートカットメニューを表示し一番上の「元データのまま」を選択しダブルクリック
③列名をダブルクリックし変更します。
④「OK」ボタンをクリック
⑤追加した列のデータ型が「10進数」であることを確認
Power BIに戻って
⑥追加した列に設定を変更します。

コピーした列のデータ型が整数ではなく、なぜかデフォルト10進数になっているのが不思議ですが、危険なところは少なかったと思います。

危険性は高いが、手っ取り早くできる方法

Power Queryで該当列を選択しデータ型を「10進数」に変更します。
15桁を超える数値が含まれていない事が前提になります。

列タイプの変更画面では「現在のものを置換」を選択します。

クエリービューに表示されている該当クエリーをマウス右クリックしショートカットメニューを表示して「プロパティ―」を選択します。
クエリのプロパティ画面で「レポートへの読み込みを有効にする」のチェックを外します。

左図は一つの画面を2回スクリーンショットしていますが、その理由は警告メッセージがスクロールしないとすべて見えないためです。

ここで「OK」ボタンをクリックしてリボンの「閉じて適用」のアイコンをクリックしてPower Queryを閉じます。

Power BIの画面に戻ると警告メッセージに書かれていたとおりにレポートが破損した状態になっています。

そこで再度「データの変換」からPower Queryを開き、先ほど外したチェックボックスを付けて同じような操作をしてPower Queryを閉じます。

これにより、元の列A1101でカンマ区切り表示されている事が確認できます。

この操作をした時に「レポートが元に戻らないケースがどのくらいあるのか?」につきましては不明です。

ただし重複したデータを持たずに手っ取り早くできる対応できる事は確かなようです。

最後に

そもそも数値型のなかでのデータ型変更というのは、データベース管理者といいますか製品開発者からすれば、データの中身が保証されないので拒絶するのが一般的な対応になるのかもしれません…ただ整数から10進数への変更が反映されないのはバグのような気はしますが…

なお小数点以下2桁の表示はPower Queryで列を選び→型の変更→ロケールを使用からロケールによる型の変更を設定することができますが、残念ながら実施しても何も変わりませんでした。

また整数をカンマ区切り編集してくれる関数なりメソッドなりがあれば良いのですが、ざっとドキュメントを見た範囲では無さそうでした…

2020/5/25 追記
整数をカンマ区切りに直接変換する関数は無かったのですが、関数を組み合わせることで実現できる事がわかりました。

元データとは別に列を追加する場合は、こちらの方が小数点以下2桁が表示されないのでよろしい事と存じます。

なお、やり方につきまして「Power BIで数値項目をカンマ区切り表示にする方法(PART 2)」として近日中に記事をアップいたします。

何卒よろしくお願い申し上げます。

次回は凡例表示の仕方につきましてご説明いたします。

以上最後までご一読いただき誠にありがとうございました。