なんでもエクセル(Nandemo Excel)

何でもエクセルでやってしまう そこのあなた。ようこそ

Power Query:複数のテーブルをリストを使って結合する

1つのブックに複数のテーブルがあって、指定したテーブルの情報をどのテーブルから読み込んだか分かるように縦結合でまとめたい場合。

画像の「本支店名」列のことを考えないなら、結合したいテーブルを全部読み込んで、「Table.Combine」か「&」で繋ぐだけでできる。1個ずつやるのが面倒ならカスタム関数を作ってもいいし。ただ「本支店名」のリストを予め用意しておけば、そこからテーブルを読み込んで結合してやったほうが簡単かなと思う。

    本支店リスト = {"本店", "A支店", "B支店"},
    本支店テーブル = Table.FromColumns(
        {本支店リスト}, type table [本支店名=text]
    ),

ここに列を追加して、該当するテーブル情報を呼び出してやる。

    テーブル呼び出し = Table.AddColumn(
        本支店テーブル, "テーブル",
        each Excel.CurrentWorkbook(){[Name=[本支店名]]}[Content],
        type table [品名=text, 数量=Int64.Type]
    ),

後はこれを展開するだけ。

    テーブル展開 = Table.ExpandTableColumn(
        テーブル呼び出し, "テーブル", {"品名", "数量"}
    )

これでおしまい。