shikumika’s diary

日々の事務作業で手間なことを簡単にできる仕組み(自動化、方法など)、困ったことの解決方法を調べた備忘録

【Power Query】ゼロ埋めでText.PadStartの活用例とエラー対応例

PowerQueryのゼロ埋めでText.PadStartの活用とエラー対応例です。前回の【Excel】数値の先頭に0を追加して桁数を揃えた文字列に変換する関数と同様の処理をPowerQueryで実施します。

内容:

アウトプットイメージ

PowerQueryで、下図のA列の数値をB列のようにゼロ埋めします。

数値を4桁に揃えて先頭を0で埋めている

ゼロ埋めのイメージ

基本知識

使用するPowerQueryの関数は、Text.PadStartです。

文字列が指定した文字数になるまで、任意の文字を先頭に埋める関数です。

learn.microsoft.com

具体的手順

1.設定前の状態

設定前の状態は下図という前提で説明します。

「数値」というフィールドに変換対象の値があります。

数値フィールドが読み込まれています

設定前の状態

2.「例からの列」で設定

「列の追加」タブー「例からの列」をクリックします。

アウトプットのイメージをカスタム欄に入力します。

この事例では、下図のとおり、”0001”、”0011”と入力すると、期待するゼロ埋め(4桁)の式が自動作成されています。

Text.PadStart(Text.From([数値A], "ja-JP"), 4, "0")

期待するゼロ埋め(4桁)の数式が自動作成されている

「例から列」の設定画面

上記設定で、「OK」をクリックすると、次のとおり期待するステップが追加されています。

「追加されたカスタム列」のステップが追加されている

ゼロ埋め(4桁)の実施後

3.エラー発生と対応例

「Text.PadStart」を使用する場合、変換の対象は”文字列”です。

今回の事例で、変換対象の値は「整数型」で「文字列型」ではありません。

そのため、例えば前述式を

Text.PadStart([数値A], 4, "0")

とすると、次のようにエラーが発生します。

Expression.Error: 値 1 を型 Text に変換できません のメッセージ

Text.PadStartのエラー発生例

エラーメッセージの内容は、

Expression.Error: 値 1 を型 Text に変換できません。

ということです。

よって、対応例としては以下となります。

  • 事前に、変換対象のフィールドを「文字列型」に変更するステップを追加する。
  • 前述の「例からの列」で自動作成された式のように、「Text.From」関数を併用する。

Excelの普段の数式と異なり、PowerQueryでエラーになった時はデータ型が適切かの確認も重要です。

参考:Power Queryの初歩

Power Queryの簡単な事例説明は下図です。

shikumika.org

 

以上、Power Queryによる「ゼロ埋めでText.PadStartの活用例とエラー対応例」でした。