Power BIで商品コードや社員番号などの「コード列」を扱うとき、桁数がバラバラで困ったことはありませんか?
たとえば「1」「23」「456」といったデータを「00001」「00023」「00456」のように統一したい場合、桁数を揃える(0埋め)処理が必要です。
多くの解説ではPower Queryを使う方法が紹介されていますが、実はDAX関数だけでも簡単に桁数を揃えることが可能です。
本記事では、Power BIでDAX関数(FORMAT・RIGHT)を使って桁数を揃える方法を、サンプルデータ付きでわかりやすく解説します。
Power Queryでの方法が知りたいという方はこちらを参考にしてみてください

FORMAT関数で0埋め
まずは、FORMAT関数を使う方法です。
FORMATは数値や日付を指定した書式で文字列に変換できる関数です。。
FORMAT(<値>, <書式文字列>)値:数値・日付・通貨などのデータ列を指定書式文字列:表示形式を指定(例:”00000″、”yyyy-MM”、”#,##0円” など)
例としてFORMAT関数を用いて、以下の売上テーブルの商品コードを0埋めして桁数を揃えてみます。
| 商品コード | 商品名 | 売上金額 |
| 1 | りんご | 1200 |
| 23 | みかん | 800 |
| 456 | バナナ | 1500 |
まずは元データを準備します。
0埋めしたいデータ列を選択してデータ型を確認してください。ここでは、整数となっているのでOKです。
テキストになっている場合は数値型に変更してください。

「モデリング」タブにある「新しい列」を選択する。

追加した列の数式バーにFORMAT関数を用いた下記の式を入力する。
この式は桁数を5桁に揃える処理となります。'売上'[商品コード]の部分は0埋めしたいデータ列を設定してください。
0埋めコード = FORMAT('売上'[商品コード], "00000")
下図のように0埋めをして5桁にそろえることができています。

以上で0埋め処理は完了です。
RIGHT関数で0埋め
次に、RIGHT関数を使う方法です。
RIGHT関数は文字列データの右側の指定文字数を取得する関数です。
RIGHT(<文字列>, <文字数>)文字列:対象の文字列文字数:右から何文字を取得するか
例としてRIGHT関数を用いて、以下の売上テーブルの商品コードを0埋めして桁数を揃えてみます。
| 商品コード | 商品名 | 売上金額 |
| 1 | りんご | 1200 |
| 23 | みかん | 800 |
| 456 | バナナ | 1500 |
まずは元データを準備します。
0埋めしたいデータ列を選択してデータ型を確認してください。ここでは、テキストとなっているのでOKです。
数値型などになっている場合はテキスト型に変更してください。

「モデリング」タブにある「新しい列」を選択する。

追加した列の数式バーにRIGHT関数を用いた下記の式を入力する。
内容としては商品コードに"00000"を左側から結合し、右から5桁を取得しています。
'売上'[商品コードの部分は0埋めしたいデータ列を設定してください。
0埋めコード = RIGHT("00000" & 売上[商品コード], 5)
下図のように0埋めをして5桁にそろえることができています。

以上で0埋め処理は完了です。
FORMAT関数とRIGHT関数の違い
FORMAT関数とRIGHT関数のどちらでも0埋めはできますが、使い分けや違いとしては以下のようになります。
| 項目 | FORMAT関数 | RIGHT関数 |
| 主な用途 | 数値・日付のフォーマット | 文字列操作 |
| パフォーマンス | やや重い | 軽い |
| 対応データ型 | 数値・日付など | 文字列 |
ドノ元のデータ型が数値型の場合はFORMAT関数、文字列型の場合はRIGHT関数と使い分けるのがオススメです。

コメント