
こんにちわ、マツコ先生 です。
「 PowerQuery上で文字列を結合する方法」でお困りではないでしょうか?
本記事でそんなお悩みを解決していきますよ!
本記事を読むことで |
---|
・文字列を結合する方法は、1つではないことを理解できる ・最も簡単な3通りの方法を理解できる |
文字列を結合する際のポイント
- 結合する文字の順番を決める
- 文字列を結合するときに区切り記号(文字)を入れるか決める
- 結合した後の元の文字列を残すかどうか決める
準備
サンプルとして次のような表を使って、A列からD列までを結合しようと思います。

この表をPowerQueryに取り込むには、上のメニューから "データ" を選択し、”テーブルまたは範囲から" のアイコンをクリックします。

テーブルに変換する範囲が合っていることを確認して、"OK" をクリックします。

PowerQueryに取り込まれたと思いますが、もう一手間必要です。
見出しにしたい行が1行目にあるので修正をします。

1行目を見出しにするには、上のメニューから "ホーム" を選択し、”1行目をヘッダーとして使用" のアイコンをクリックします。

1行目にあった文字列が見出しとして設定されていると思います。右下の "適用したステップ" にも処理が追加されているのが確認できると思います。

これで準備は完了です。次からは文字列を結合する方法を紹介していきます。
方法1:複数列をマージ(マージ元の列は削除)
1つ目の方法は、文字列を結合したあと、元の文字列がある列を削除したい場合に適しています。
結合したい列を選択します。複数列を選択する場合は、"Shift"キーを押しながら各列のヘッダー部分をクリックします。

上のメニューから "変換" を選択し、”列のマージ" のアイコンをクリックします。

"列のマージ" の設定画面が表示されるので、”区切り記号" と 結合後の "新しい列名" を設定し、"OK" をクリックします。

"区切り記号" はリストから選択しますが、リストにない文字を区切り記号としたい場合は、"--カスタム--" を選択して設定してください。

選択していた列が削除されて、結合した新しい列が表示されていると思います。

方法2:複数列をマージ(マージ元の列は残す)
2つ目の方法は、文字列を結合したあと、元の文字列がある列を残したい場合に適しています。
結合したい列を選択します。複数列を選択する場合は、"Shift"キーを押しながら各列のヘッダー部分をクリックします。

上のメニューから "列の追加" を選択し、”列のマージ" のアイコンをクリックします。

"列のマージ" の設定画面が表示されるので、”区切り記号" と 結合後の "新しい列名" を設定し、"OK" をクリックします。

"区切り記号" はリストから選択しますが、リストにない文字を区切り記号としたい場合は、"--カスタム--" を選択して設定してください。

選択していた列はそのままに、結合した新しい列が追加されていると思います。

方法3:カスタム列を追加(M関数を手動入力)
3つ目の方法は、M関数を使って、手動で文字を結合する計算式を設定します。文字列を単純に結合するだけでなく、他の計算(関数)も使ってカスタマイズしたい場合に適しています。
上のメニューから "列の追加" を選択し、”カスタム列" のアイコンをクリックします。

"カスタム列" の設定画面が表示されるので、追加する列の "新しい列名" と "カスタム式" を入力します。
計算式に既存列の値を使いたい場合は、"使用できる列" から選択し、"挿入" をクリックします。

文字列を結合するM関数、Combiner.CombineTextByDelimiter(区切り記号),({結合したい列}) を使います。
"区切り記号" のところには、結合する文字列と文字列の間に記号を入れたい場合に設定します。今回は設定しませんので空欄を意味する""を設定します。
"結合したい列" のところには、"使用できる列" から挿入した列を ",(カンマ)" で区切りながら追加します。 入力が終わったら、"OK" をクリックします。

選択していた列はそのままに、結合した新しい列が追加されていると思います。

まとめ
今回は「 PowerQuery上で文字列を結合する方法」をご説明しました。
今回は、最も簡単な次の3つの方法を紹介しました。
- 方法1:複数列をマージ(マージ元の列は削除)
- 方法2:複数列をマージ(マージ元の列は残す)
- 方法3:カスタム列を追加(M関数を手動入力)
また、文字列を結合する方法を検討する前に次のポイントを決める必要があることに留意しましょう。
- 結合する文字の順番を決める
- 文字列を結合するときに区切り記号(文字)を入れるか決める
- 結合した後の元の文字列を残すかどうか決める
また、以下の記事もお困りの問題を解決するヒントになるかもしれないので、ぜひ参考にしてみてください!