![見出し画像](https://assets.st-note.com/production/uploads/images/38021730/rectangle_large_type_2_80a80562c1d72abe8908fc89727050e8.png?width=1200)
【エクセル パワークエリ】フィールド名を指定せず、テーブルのすべてのフィールドを展開する方法【Excel PowerQuery】
やりたいこと
PowerQuery上で、テーブルからフィールドを展開するとき
= Table.ExpandTableColumn(追加されたカスタム, "テーブル0",
{"品目コード", "品目名称", "単価"}, {"品目コード", "品目名称", "単価"})
このように、この時点で存在する特定のフィールドだけを指定して展開するのではなく、いつでもテーブルに存在する、すべてのフィールドを展開したい。
本文
PowerQuery上でクエリのマージなどを行い、現在のテーブルに別テーブルを接続すると、こんな状態になります。
この次のステップとして、接続したテーブルから必要なフィールドを指定して展開します。
僕が意図するところは、クエリのマージで接続したテーブルに存在するすべてのフィールドを展開したい、というものなのです。
ところが、数式を見てみると
= Table.ExpandTableColumn(追加されたカスタム, "テーブル0",
{"品目コード", "品目名称", "単価"}, {"品目コード", "品目名称", "単価"})
このように、このクエリを作成した時点で存在するすべてのフィールドを、決め打ちで展開するものになってしまっています。
接続するテーブルのフィールドが常に同じであれば問題ありません。
しかし、そうではない場合。
つまり接続するテーブルのフィールドが増えたり減ったり可変する場合。
例えば、フィールドが増えると、増えたフィールドは展開されません。
例えば、フィールドが減ると、このクエリはエラーとなってクエリが正常に更新されません。
では、テーブルのフィールドを展開するときに、フィールド名を指定せず、常にテーブルに存在するすべてのフィールドを展開するには、どうすればいいのでしょうか?
解決策
接続したテーブルを展開したときの数式。この太字部分を変更します。
= Table.ExpandTableColumn(追加されたカスタム, "テーブル0",
{"品目コード", "品目名称", "単価"}, {"品目コード", "品目名称", "単価"})
よければサポートしていただけると嬉しいです😀 有用な記事や動画を制作していけるように頑張ります❗️