PowerQuery(パワークエリ)で文字列を結合する方法を紹介します。カスタム列で&記号や関数式を用いた結合方法と列のマージを用いた結合方法を解説します。
文字列結合前のnull処理方法やError回避方法なども記載していますので参考にしてみてください。
&記号とカスタム列で文字列を結合する
&記号の使い方
テキストデータは&記号でつなげることで結合することができます。
文字列は ” ” (ダブルクォーテーション)で囲んで表記し、列データは [ ] で囲んで表記します。
下図のようにカスタム列で結合したい文字列や列を&記号でつなげればOKです。
&記号使用時の注意点(null処理)
&記号で列データを用いる場合は下記の2点に注意してください。
対処方法も紹介しているので参考にしてください。
- 結合するデータに一つでも null がある場合、結果は null となる。
- データ型がテキスト型の必要があり、異なる場合は結果がErrorとなる。
前処理1:nullを空白に置換する
使用する列データにnullが含まれていると下図のように文字列結合の結果がnullとなってしまうので、文字列結合前にnullを空白に置換する必要があります。
null置換の手順は下記の通りです。詳しい手順は以下の記事を参考にしてみてください。
- nullが含まれる列を選択する(複数列の場合はCtrlキーを押しながら選択)
- 変換タブの「値の置換」をクリックする。
- 設定画面で「検索する値」に「null」、「置換後」を入力せずにOKをクリックする。
前処理2:データ型をテキスト型に変更する
列のデータ型がテキスト型以外だと下図のように文字列結合の結果がErrorとなるため、文字列結合前にデータ型を変換する必要があります。
データ変更手順は下記の通りです。詳しい手順は以下の記事を参考にしてみてください。
- 文字列結合に用いる列のデータ型ボタンをクリックする。
- 変更するデータ型として「テキスト型」を選択する。
&記号での結合手順
結合手順の説明例として下記の3列を結合して「年月日」列を作成します。
まずは使用する列のデータ型がテキスト型か確認をします。異なる場合は下記のようにデータ型を変更します。
- 列のデータ型ボタンをクリックする。
- 変更するデータ型として「テキスト型」を選択する。
- 列の追加タブの「カスタム列」をクリックする。
- カスタム列の式に下記の文字列結合の式を入力する。
[年] & [月] & [日]
以上で&記号での文字列結合は完了です。3つの文字列が結合された「年月日」が作成されています。
※「年月日」列のデータ型を日付型に変換するとYYYY/MM/DDの表記に変更することもできますので必要に応じて試してみてください。
上記のデータを用いてYYYY/MM/DD(例:2024/4/1)のようにスラッシュ区切りで結合したい場合は文字列の抽出関数を合わせて使えば行うことができます。
Text.Start関数を用いて下記のように式を入力すればOKです。
Text.Start([年],4) & "/" & Text.Start([月],1) & "/" & Text.Start([日],1)
文字列抽出についてはこちらの記事で詳しく解説してますので参考にしてみてください。
Sponsored link
関数式で文字列を結合する
Text.Combine関数の使い方
文字列データを結合するにはText.Combine関数を利用します。設定項目は下記の通りです。
※区切り文字は省略可能です。また、nullは無視されます。
Text.Combine ( { “文字列1” , “文字列2” } , “区切り文字” )
使用例 | 出力 |
---|---|
Text.Combine ( { “2024年”, “4月” } ) | “2024年4月” |
Text.Combine ( { “2024”, “4”, “1” } , “/” ) | “2024/4/1” |
Text.Combine ( { “2024”, “4”, null } , “/” ) | “2024/4” |
結合する値に列データも使用できます。
列名を大括弧で囲んで、[列名]のように記載します。
関数式での結合手順
結合手順の説明例として下記の3列を結合して「年月日」列を作成します。年、月、日はスラッシュで区切って結合します。
まずは使用する列のデータ型がテキスト型か確認をします。異なる場合は下記のようにデータ型を変更します。
- 列のデータ型ボタンをクリックする。
- 変更するデータ型として「テキスト型」を選択する。
- 列の追加タブの「カスタム列」をクリックする。
- カスタム列の式に下記の文字列結合の式を入力する。
Text.Combine ( { [年], [月], [日]} , "/" )
以上で関数式での文字列結合は完了です。3つの文字列が結合された「年月日」が作成されています。
※「年月日」列のデータ型を日付型に変換すれば日付データとして利用することができます。
Sponsored link
列のマージで文字列を結合する
列のマージの使い方
文字列結合したいテキスト型の列を選択して「列のマージ」ボタンを使用することで文字列の結合を行うことができます。
【使用手順】
- 文字列結合したいテキスト列をCtrlキーをクリックして複数選択する。
- 変換タブまたは列の追加タブの「列のマージ」をクリックする。
- 設定画面で文字列結合部の「区切り記号」と「新しい列名」を設定してOKをクリックする。
「列のマージ」コマンドは変換タブ内と列の追加タブ内の両方にあり、文字列結合した結果が下記のように異なるので状況に応じて使い分けてください。
- 「変換タブ」の列の抽出:元のデータ列が削除されマージ列だけが残る。
- 「列の追加タブ」の列の抽出:元のデータ列とマージ列が両方とも残る。
列のマージでは列データにないテキストデータを追加することはできません。新しく文字を追加したい場合はカスタム列を使った方法がオススメです。
列のマージでの結合手順
結合手順の説明例として下記の3列を結合して「年月日」列を作成します。年、月、日はスラッシュで区切って結合します。
まずは使用する列のデータ型がテキスト型か確認をします。異なる場合は下記のようにデータ型を変更します。
- 列のデータ型ボタンをクリックする。
- 変更するデータ型として「テキスト型」を選択する。
- 文字列結合したい列「年」「月」「日」をCtrlキーをクリックして複数選択する。
- 列の追加タブの「列のマージ」をクリックする。
- 設定画面の「区切り記号」に「 / 」を入力し「新しい列名」に「年月日」と入力してOKをクリックする。
以上で列のマージでの文字列結合は完了です。3つの文字列が結合された「年月日」が作成されています。
※「年月日」列のデータ型を日付型に変換すれば日付データとして利用することができます。
Sponsored link
パワークエリの学習本についてはコチラの記事でまとめてますので参考にしてみてください。
・初心者向けおすすめ学習本
・初中級者向けおすすめ学習本
コメント