Quantcast
Channel: なんでもエクセル(Nandemo Excel)
Viewing all articles
Browse latest Browse all 48

Power Query:クエリ名の文字列からクエリを呼び出す

$
0
0

実のところ必要性はそれほど感じていないんですが、やれるかどうかに興味があったので「クエリ名の文字列からクエリを呼び出す方法」を考えてみました。

予め、上記の3つのテーブルは「テーブル1」「テーブル2」「テーブル3」として、クエリを作成済(接続のみ)とします。

クエリ名といってもただの文字列ですから、これをそのままクエリとして認識させることはできません。

ではどうするかというと、今回の記事の肝となる「セクション」を使います。

learn.microsoft.com

セクションで「Section1」を指定すると、エディタに表示されているクエリ情報のレコードが表示されます。

このレコードからフィールド名を指定して値(今回の場合はテーブル)を取り出せばいいんです。実際に文字列のクエリ名を使って、クエリを呼び出してみましょう。


クエリ名の文字列からクエリを呼び出す
let     ソース = Excel.CurrentWorkbook(){[Name="テーブル名"]}[Content],     呼び出し = Record.Field(#sections[Section1], ソース{0}[名前]) in     呼び出し

やってみると意外に簡単でした。

次はこれの応用です。先ほどと同じ要領で、クエリ名のリストからクエリを呼び出して、ついでに結合してしまいましょう。

別サンプルで作った関係で、参照するテーブル名が「テーブル名」から「テーブルリスト」になっていますが、テーブルからクエリを作成するのは同じなので無視してください。


クエリ名の文字列からクエリを呼び出す
let     ソース = Excel.CurrentWorkbook(){[Name="テーブルリスト"]}[Content],     呼び出し = Table.Combine(         List.Transform(             ソース[名前],             each Record.Field(#sections[Section1], _)         )     ) in     呼び出し

こっちも、やること自体はそんなに変わりませんね。

ただこれ、「クエリ名」ではなく「テーブル名」が分かっているなら、こんなことする必要ないんですよね。


Viewing all articles
Browse latest Browse all 48

Trending Articles