PowerQueryで複数列を一つの列に結合する方法を紹介します(以下の2種類)
- テーブルの全ての列を1つの列に結合する
- 選択した複数の列を1つの列に結合する
複数のテーブルを用意してテーブル結合を用いる方法もあるのですが、ここではM言語を用いて1ステップで行う方法について紹介します。
全ての列を1列に結合する
利用する式(M言語)
テーブル内のすべての列を1つの列に結合するには下記の式を用います。
Table.FromList(List.Combine(Table.ToColumns(テーブル名)),null,{“列名“})

テーブル名は結合前のテーブル名、列名は結合後に作られる列の列名を設定してください。
それぞれの関数の役割は以下の通りです。
- Table.ToColumns関数:テーブルにある列をリストに変換する
- List.Combine関数:リストを結合する
- Table.FromList関数:リストをテーブルに変換する。
結合手順
テーブルにある全ての列を結合する手順を解説します。
手順の説明例として、下図の3つの列を1つの列に結合します。


まず 式を入力する新しい列を追加します。
下図のようにステップを右クリックして「後にステップの挿入」を選択します。


追加されたステップにおいて下記のM言語の式を入力します。
テーブルにはソース
、新しい列名には結合列
を設定しています。
Table.FromList(List.Combine(Table.ToColumns(ソース)),null,{"結合列"})


下図のように1つのステップでテーブル全体の結合ができています。


選択した列を1列に結合する
利用する式(M言語)
選択した列のみを1つの列に結合するには下記の式を用います。
Table.FromList(List.Combine(Table.ToColumns(Table.SelectColumns(テーブル名, {“列名1“, “列名2“, …}))),null,{“新しい列名“})



テーブル名は結合前のテーブル名、列名1,2には結合する列名、新しい列名には結合後に作られる列の列名を設定してください。
それぞれの関数の役割は以下の通りです。
- Table.SelectColumns関数:テーブルの列をフィルタする
- Table.ToColumns関数:テーブルにある列をリストに変換する
- List.Combine関数:リストを結合する
- Table.FromList関数:リストをテーブルに変換する。
結合手順
選択した列のみを結合する手順を解説します。
手順の説明例として、下図の列1と列2を1つの列に結合します。


まず 式を入力する新しい列を追加します。
下図のようにステップを右クリックして「後にステップの挿入」を選択します。


追加されたステップにおいて下記のM言語の式を入力します。
テーブルにはソース
、列名1,2には1
,2
、新しい列名には結合列
を設定しています。
Table.FromList(List.Combine(Table.ToColumns(Table.SelectColumns(ソース, {"1", "2"}))),null,{"結合列"})


下図のように1つのステップで複数列の結合ができています。


パワークエリの学習本についてはコチラの記事でまとめてますので参考にしてみてください。
・初心者向けおすすめ学習本
・初中級者向けおすすめ学習本
コメント