見出し画像

【エクセル パワークエリ】フィールド名を指定せず、テーブルのすべてのフィールドを展開する方法【Excel PowerQuery】

やりたいこと


PowerQuery上で、テーブルからフィールドを展開するとき

画像7

画像4

画像7

= Table.ExpandTableColumn(追加されたカスタム, "テーブル0",
{"品目コード", "品目名称", "単価"}, {"品目コード", "品目名称", "単価"})

画像6


このように、この時点で存在する特定のフィールドだけを指定して展開するのではなく、いつでもテーブルに存在する、すべてのフィールドを展開したい。



本文


PowerQuery上でクエリのマージなどを行い、現在のテーブルに別テーブルを接続すると、こんな状態になります。

画像3


この次のステップとして、接続したテーブルから必要なフィールドを指定して展開します。

画像3

画像6


僕が意図するところは、クエリのマージで接続したテーブルに存在するすべてのフィールドを展開したい、というものなのです。

ところが、数式を見てみると

= Table.ExpandTableColumn(追加されたカスタム, "テーブル0",
{"品目コード", "品目名称", "単価"}, {"品目コード", "品目名称", "単価"})

このように、このクエリを作成した時点で存在するすべてのフィールドを、決め打ちで展開するものになってしまっています。



接続するテーブルのフィールドが常に同じであれば問題ありません。

しかし、そうではない場合。
つまり接続するテーブルのフィールドが増えたり減ったり可変する場合。

例えば、フィールドが増えると、増えたフィールドは展開されません。

例えば、フィールドが減ると、このクエリはエラーとなってクエリが正常に更新されません。


では、テーブルのフィールドを展開するときに、フィールド名を指定せず、常にテーブルに存在するすべてのフィールドを展開するには、どうすればいいのでしょうか?



解決策


接続したテーブルを展開したときの数式。この太字部分を変更します。

= Table.ExpandTableColumn(追加されたカスタム, "テーブル0",
{"品目コード", "品目名称", "単価"}, {"品目コード", "品目名称", "単価"})

ここから先は

607字
この記事のみ ¥ 500

よければサポートしていただけると嬉しいです😀 有用な記事や動画を制作していけるように頑張ります❗️