PowerQuery 文字列結合の方法|カスタム列と関数式も解説!

PowerQuery(パワークエリ)で文字列を結合する方法を紹介します。カスタム列で&記号や関数式を用いた結合方法と列のマージを用いた結合方法を解説します。
文字列結合前のnull処理方法やError回避方法なども記載していますので参考にしてみてください。

目次

&記号とカスタム列で文字列を結合する

&記号の使い方

テキストデータは&記号でつなげることで結合することができます。
文字列は ” ” (ダブルクォーテーション)で囲んで表記し、列データは [ ] で囲んで表記します。

下図のようにカスタム列で結合したい文字列や列を&記号でつなげればOKです。

&記号での文字列結合手順

結合手順の説明例として下記の3列を結合して「年月日」列を作成します。

STEP
データ型をテキスト型に変更する

まずは使用する列のデータ型がテキスト型か確認をします。異なる場合は下記のようにデータ型を変更します。

  1. 列のデータ型ボタンをクリックする。
  2. 変更するデータ型として「テキスト型」を選択する。
STEP
カスタム列で文字列結合の式を作成する
  1. 列の追加タブの「カスタム列」をクリックする。
  2. カスタム列の式に下記の文字列結合の式を入力する。
[年] & [月] & [日] 
STEP
文字列結合の完了

以上で&記号での文字列結合は完了です。3つの文字列が結合された「年月日」が作成されています。
※「年月日」列のデータ型を日付型に変換するとYYYY/MM/DDの表記に変更することもできますので必要に応じて試してみてください。

YYYY/MM/DDに変換したい場合

上記のデータを用いてYYYY/MM/DD(例:2024/4/1)のようにスラッシュ区切りで結合したい場合は文字列の抽出関数を合わせて使えば行うことができます。

Text.Start関数を用いて下記のように式を入力すればOKです。

Text.Start([年],4) & "/" & Text.Start([月],1) & "/" & Text.Start([日],1)

文字列抽出についてはこちらの記事で詳しく解説してますので参考にしてみてください。

&記号使用時の注意点(null処理)

ドノ

&記号で列データを用いる場合は下記の2点に注意してください。
対処方法も紹介しているので参考にしてください。

列データを使用する際の注意点
  • 結合するデータに一つでも null がある場合、結果は null となる。
  • データ型がテキスト型の必要があり、異なる場合は結果がErrorとなる。

前処理1:データのnullを空白に置換する

使用する列データにnullが含まれていると文字列結合の結果もnullとなってしまいます。

文字列結合前に下記の手順に沿ってnullを空白に置換しておきましょう(詳しい手順は別途紹介しています)

  1. nullが含まれる列を選択する(複数列の場合はCtrlキーを押しながら選択)
  2. 変換タブの「値の置換」をクリックする。
  3. 設定画面で「検索する値」に「null」、「置換後」を入力せずにOKをクリックする。

前処理2:データ型をテキスト型に変更する

列のデータ型がテキスト型以外の場合、文字列結合の結果がErrorとなってしまいます。

そのため、文字列結合前に下記の手順でデータ型を変換しておきしょう(詳しい手順は別途紹介しています)

  1. 文字列結合に用いる列のデータ型ボタンをクリックする。
  2. 変更するデータ型として「テキスト型」を選択する。

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列を結合して「年月日」列を作成します。年、月、日はスラッシュで区切って結合します。

STEP
データ型がテキスト型に変更する

まずは使用する列のデータ型がテキスト型か確認をします。異なる場合は下記のようにデータ型を変更します。

  1. 列のデータ型ボタンをクリックする。
  2. 変更するデータ型として「テキスト型」を選択する。
STEP
カスタム列で文字列結合の式を作成する
  1. 列の追加タブの「カスタム列」をクリックする。
  2. カスタム列の式に下記の文字列結合の式を入力する。
Text.Combine ( { [年], [月], [日]} , "/" )
STEP
文字列結合の完了

以上で関数式での文字列結合は完了です。3つの文字列が結合された「年月日」が作成されています。
※「年月日」列のデータ型を日付型に変換すれば日付データとして利用することができます。

Sponsored link

列のマージで文字列を結合する

列のマージの使い方

文字列結合したいテキスト型の列を選択して「列のマージ」ボタンを使用することで文字列の結合を行うことができます。

【使用手順】

  1. 文字列結合したいテキスト列をCtrlキーをクリックして複数選択する。
  2. 変換タブまたは列の追加タブの「列のマージ」をクリックする。
  3. 設定画面で文字列結合部の「区切り記号」と「新しい列名」を設定してOKをクリックする。
列のマージ:「変換」と「列の追加」の違い

「列のマージ」コマンドは変換タブ内と列の追加タブ内の両方にあり、文字列結合した結果が下記のように異なるので状況に応じて使い分けてください。

  • 「変換タブ」の列の抽出:元のデータ列が削除されマージ列だけが残る。
  • 「列の追加タブ」の列の抽出:元のデータ列とマージ列が両方とも残る。
ドノ

列のマージでは列データにないテキストデータを追加することはできません。新しく文字を追加したい場合はカスタム列を使った方法がオススメです。

列のマージでの結合手順

結合手順の説明例として下記の3列を結合して「年月日」列を作成します。年、月、日はスラッシュで区切って結合します。

STEP
データ型がテキスト型に変更する

まずは使用する列のデータ型がテキスト型か確認をします。異なる場合は下記のようにデータ型を変更します。

  1. 列のデータ型ボタンをクリックする。
  2. 変更するデータ型として「テキスト型」を選択する。
STEP
カスタム列で文字列結合の式を作成する
  1. 文字列結合したい列「年」「月」「日」をCtrlキーをクリックして複数選択する。
  2. 列の追加タブの「列のマージ」をクリックする。
  3. 設定画面の「区切り記号」に「 / 」を入力し「新しい列名」に「年月日」と入力してOKをクリックする。
STEP
文字列結合の完了

以上で列のマージでの文字列結合は完了です。3つの文字列が結合された「年月日」が作成されています。
※「年月日」列のデータ型を日付型に変換すれば日付データとして利用することができます。

Sponsored link

Power Queryのおすすめ書籍

パワークエリの学習本についてはコチラの記事でまとめてますので参考にしてみてください。

初心者向けおすすめ学習本

初中級者向けおすすめ学習本

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

この記事を書いた人

仕事、お金、旅行のことなどメモしてます。
仕事ではTableauを勉強中!
初心者にもわかりやすいように学んだことを発信していきます。

コメント

コメントする

コメントは日本語で入力してください。(スパム対策)

CAPTCHA

目次