▶ 中間テーブルを作ってリレーションシップの設定をする方法はこちらをご覧ください
▶ カレンダーテーブルの作成方法はこちらの投稿をどうぞ
はじめに
今回は、0埋めして桁数をそろえる方法について解説します。0埋めとは、数字の桁数が揃っていないときに、左側に0を付け加えて桁数をそろえることです。例えば、1, 2, 3という数字を3桁にそろえるときには、001, 002, 003というように0埋めします。このやり方を基本から解説します。
0埋めで桁数をそろえる
必要となるケース
たとえば、以下のようなシーンで役立ちます。
- 郵便番号や電話番号などの固定長の数字を扱うとき
- 文字列として扱った数字を並べたいとき
- 数値の表示形式を統一したいとき
- 数値を他のシステムやファイルに連携する際に桁数が必要なとき
上記に当てはまるようなことはありませんか?
郵便番号や電話番号などはわかりやすいですね。「090-XXXX-XXXX」という電話番号が「90-XXXX-XXXX」のように先頭の0が抜けしてしまったことはありませんか?数値を文字列として扱った時に以下のようになったことはないでしょうか?
2つめは少しわかりにくいかもしれません。数字をテキスト型として扱った時に、並び替えをして以下のようになったことはありませんか?
これは桁数が揃っていれば、次のようにきれいに並べることができます。
また、他システムにデータを渡すときに、桁数が指定されることもあります。利用シーンが確認できたところで、実際に桁数を揃える方法を見ていきましょう。
0埋めで桁数を揃える
Power BIではデータの取り込み時にPower クエリで処理してしまうのが一番簡単な方法です。先ほどのどうぶつのidのデータで実際に操作を説明しましょう。
今回は取り込むファイルの指定が完了して、Power クエリの画面からの説明とします。
▶ データの取り込む手順、Power クエリの起動手順がわからない方はこちらの投稿をご覧ください。
まずPower クエリの画面でデータの方を確認しましょう。
今回、0埋めで桁数を揃える「id」のカラムが整数型で認識されている場合は、「テキスト」型に変更します。次のように型のアイコン部分をクリックすると、プルダウンが表示され選択することができます。
すると次のように表示されます。(赤枠で囲った部分が「ABC」になっています)
ここから0埋めによる桁揃えをしていきますが、次の手順で進めます。
- id列から0埋めにより桁を揃えた「新しい列」(カスタム列)を作る。
- 不要になったid列を削除する
- 新しく作ったカスタム列をrenameして「id」列とする
まず、1.のカスタム列の作成からやっていきます。「列の追加」メニューの「全般」リボンの中から「カスタム列」を選択します。
するとカスタム列のダイアログが表示されます。ここで、新しく作るカスタム列の列名と、0埋めによる桁数を揃える設定をします。
カスタム列の式の部分ではDAX関数Text.PadStartを使います。この関数の書式は以下となります。
これで指定した列を指定した桁数になるまで、先頭に0を加えて埋めることができます。実は0以外の指定もできます。他の文字で埋めたい場合は、「”0″」の部分を「”埋めたい文字”」で置き換えてください。
設定してみましょう。
新しい列名はあとでrenameするので何でもよいです。カスタム列の式の部分は、今回は4桁として0埋めにしましょう。設定できたら「OK」をクリックしてください。
これで0埋めした列ができました。ただ、データの型が正しく認識されていません。赤枠で囲った部分を見ると、「ABC」と「123」の両方の表記がありますね。これはPower BIがテキスト型なのか整数型なのかを正しく認識していない状態です。テキスト型に変換してください。
これで「id」列は不要となるので削除して、「id.1」列を「id」列にrenameしましょう。以下のようになれば完成です。
これを読み込んで、レポート画面のテーブルでデータを表示してみましょう。idでソートするときれいに並びます。
まとめ
今回は0埋めにより桁数を揃える方法を基本から解説しました。最初に利用シーンを確認したように、割と多くの場面でこのような問題に遭遇します。その場合には是非、今回ご紹介した方法を思い出して試してみてください。Power BIで処理をすると驚くほど簡単ですね。
コメント