Power Query M: Table.TransformColumnsでテーブル型データ等を含む構造化列を変換

データ ソースから Power BI にデータを読み込むとき、何らかの理由で、データ ソースを読み込んだ後、列にテーブル型、レコード型、リスト型データが含まれることが発生する可能性があります。
テーブル型、レコード型、リスト型データは構造化列と呼ばれ、これらを分解しないと次の処理を進めることが出来ないケースが多いです。
今回の記事ではTable.TransformColumns関数を使用する方法を紹介します。

以下は例として作成したサンプルです。
List Product.product列に商品数が複数の場合はリスト形式で作成されますが、商品が1つの場合はテキスト形式となります。


次にリストデータをテキスト型に変換する処理をしていきます。

let
//(データ読み込みコードを短縮する)
    #"Transform List Product.product " = Table.TransformColumns(#"Your Table Name", {"List Product.product", each 
      if Value.Is(_, type list) then 
          Text.Combine(_,",")
      else 
          _})
in
    #"Transform List Product.product "

結果


ソースコード説明
Table.TransformColumns関数を使用して、テーブルの「List Product.product」にロジックを適用します
・「each」 キーワードと 「_ 」 (アンダースコア) とは行それぞれに処理を行います。
Value.Is(_, type list) を使用して、現在の値がリスト型であるかどうかを確認します。
 True の場合: Text.Combine(_, “,”): を使用してリストをテキスト リストに変換しようとします。
 Falseの場合: 元の値 (_) が保持されます。

参照
Table.TransformColumns使い方は https://learn.microsoft.com/ja-jp/powerquery-m/table-transformcolumns
「each」 キーワードと 「_ 」 (アンダースコア) とは https://qiita.com/PowerBIxyz/items/6668537a576592a04bcf