Power BIで桁数を揃える!DAX関数だけで0埋めを実現する方法

Power BIで商品コードや社員番号などの「コード列」を扱うとき、桁数がバラバラで困ったことはありませんか?

たとえば「1」「23」「456」といったデータを「00001」「00023」「00456」のように統一したい場合、桁数を揃える(0埋め)処理が必要です。

多くの解説ではPower Queryを使う方法が紹介されていますが、実はDAX関数だけでも簡単に桁数を揃えることが可能です。

本記事では、Power BIでDAX関数(FORMATRIGHT)を使って桁数を揃える方法を、サンプルデータ付きでわかりやすく解説します。

Power Queryでの方法が知りたいという方はこちらを参考にしてみてください

目次
スポンサーリンク

FORMAT関数で0埋め

まずは、FORMAT関数を使う方法です。

FORMATは数値や日付を指定した書式で文字列に変換できる関数です。。

FORMAT(<値>, <書式文字列>)
  • :数値・日付・通貨などのデータ列を指定
  • 書式文字列:表示形式を指定(例:”00000″、”yyyy-MM”、”#,##0円” など)

FORMAT関数で0埋めをする場合はデータ型が数値列であることを確認してください。文字列型だと0埋め変換が行われません。

例としてFORMAT関数を用いて、以下の売上テーブルの商品コードを0埋めして桁数を揃えてみます。

商品コード商品名売上金額
1りんご1200
23みかん800
456バナナ1500
STEP
データ準備・データ型確認

まずは元データを準備します。

0埋めしたいデータ列を選択してデータ型を確認してください。ここでは、整数となっているのでOKです。

テキストになっている場合は数値型に変更してください。

STEP
FORMAT関数により0埋めコードを作成

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

追加した列の数式バーにFORMAT関数を用いた下記の式を入力する。

この式は桁数を5桁に揃える処理となります。'売上'[商品コード]の部分は0埋めしたいデータ列を設定してください。

0埋めコード = FORMAT('売上'[商品コード], "00000")

桁数を変えたい場合はFORMAT関数内の"00000"となっている部分を"0000" や "000000" に変えればOKです

STEP
結果確認

下図のように0埋めをして5桁にそろえることができています。

以上で0埋め処理は完了です。

RIGHT関数で0埋め

次に、RIGHT関数を使う方法です。

RIGHT関数は文字列データの右側の指定文字数を取得する関数です。

RIGHT(<文字列>, <文字数>)
  • 文字列:対象の文字列
  • 文字数:右から何文字を取得するか

RIGHT関数は文字列関数のため数値列に適用するとエラーが起きます。そのため、使用前にデータ型が文字列であることを確認してください。

例としてRIGHT関数を用いて、以下の売上テーブルの商品コードを0埋めして桁数を揃えてみます。

商品コード商品名売上金額
1りんご1200
23みかん800
456バナナ1500
STEP
データ準備・データ型確認

まずは元データを準備します。

0埋めしたいデータ列を選択してデータ型を確認してください。ここでは、テキストとなっているのでOKです。

数値型などになっている場合はテキスト型に変更してください。

STEP
RIGHT関数により0埋めコードを作成

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

追加した列の数式バーにRIGHT関数を用いた下記の式を入力する。

内容としては商品コードに"00000"を左側から結合し、右から5桁を取得しています。

'売上'[商品コードの部分は0埋めしたいデータ列を設定してください。

0埋めコード = RIGHT("00000" & 売上[商品コード], 5)

桁数を変えたい場合はFORMAT関数内の"00000"となっている部分を"0000" や "000000" に変えればOKです

STEP
結果確認

下図のように0埋めをして5桁にそろえることができています。

以上で0埋め処理は完了です。

FORMAT関数とRIGHT関数の違い

FORMAT関数とRIGHT関数のどちらでも0埋めはできますが、使い分けや違いとしては以下のようになります。

項目FORMAT関数RIGHT関数
主な用途数値・日付のフォーマット文字列操作
パフォーマンスやや重い軽い
対応データ型数値・日付など文字列
ドノ

元のデータ型が数値型の場合はFORMAT関数、文字列型の場合はRIGHT関数と使い分けるのがオススメです。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

CAPTCHA


目次