PowerQueryのゼロ埋めでText.PadStartの活用とエラー対応例です。前回の【Excel】数値の先頭に0を追加して桁数を揃えた文字列に変換する関数と同様の処理をPowerQueryで実施します。
内容:
アウトプットイメージ
PowerQueryで、下図のA列の数値をB列のようにゼロ埋めします。
基本知識
使用するPowerQueryの関数は、Text.PadStartです。
文字列が指定した文字数になるまで、任意の文字を先頭に埋める関数です。
具体的手順
1.設定前の状態
設定前の状態は下図という前提で説明します。
「数値」というフィールドに変換対象の値があります。
2.「例からの列」で設定
「列の追加」タブー「例からの列」をクリックします。
アウトプットのイメージをカスタム欄に入力します。
この事例では、下図のとおり、”0001”、”0011”と入力すると、期待するゼロ埋め(4桁)の式が自動作成されています。
Text.PadStart(Text.From([数値A], "ja-JP"), 4, "0")
上記設定で、「OK」をクリックすると、次のとおり期待するステップが追加されています。
3.エラー発生と対応例
「Text.PadStart」を使用する場合、変換の対象は”文字列”です。
今回の事例で、変換対象の値は「整数型」で「文字列型」ではありません。
そのため、例えば前述式を
Text.PadStart([数値A], 4, "0")
とすると、次のようにエラーが発生します。
エラーメッセージの内容は、
Expression.Error: 値 1 を型 Text に変換できません。
ということです。
よって、対応例としては以下となります。
- 事前に、変換対象のフィールドを「文字列型」に変更するステップを追加する。
- 前述の「例からの列」で自動作成された式のように、「Text.From」関数を併用する。
Excelの普段の数式と異なり、PowerQueryでエラーになった時はデータ型が適切かの確認も重要です。
参考:Power Queryの初歩
Power Queryの簡単な事例説明は下図です。
以上、Power Queryによる「ゼロ埋めでText.PadStartの活用例とエラー対応例」でした。