1

Power Query M でテーブルを動的に呼び出そうとしています。私がやろうとしていることを説明するために、以下に簡単なクエリを作成しました。

現在取得している「Source1」ではなく、結果を「It Worked」にしたいと思います。

let
  Source1 =  Table.FromList(
    {
      [Word1="It",Word2="Worked"]
    },
    Record.FieldValues,
    {"Word1","Word2"}
  ),
  Source2 = "Source" & "1"
in
  Source2

ユースケースの詳細:

条件に基づいてクエリを呼び出すことができるように、これを実行しようとしています。そのような:

if ENV = "production" then
  Customer_s
else
  Customer_m

はCSVCustomer_sファイルで見つかった顧客データを取得するためのクエリCustomer_mであり、SQL Server で見つかった顧客データを取得するためのクエリです。

私は多くのテーブル(顧客だけでなく)でこれを行うので、モデル名(つまり「顧客」)を渡すことができる関数を作成し、それをつなぎ合わせてクエリを呼び出すと思いました。

PowerBI が停止し、常に不必要にクエリを再実行しているため、PC とネットワークの速度が低下していることに気付きました。これを回避する簡単な方法は、SQL Server の結果のように見えるが、自分のマシンにローカルに保存されているダミー データを作成することだと思いました。そうすれば、インターネットにアクセスできない場合でもクエリを作成できます。

4

3 に答える 3

2

#shared には、使用可能なすべてのクエリとライブラリ関数のリストが含まれているため、次のようなことができます。 Record.Field(#shared, "It " & "Worked")

于 2016-03-14T17:33:41.740 に答える
1

これを使用する場合:

= Expression.Evaluate("Source"&"1", #shared)

他のクエリを動的に参照できます。ただし、同じクエリ内の他のステップではありません (そうであるように)。したがって、新しいクエリに配置する必要があります。

または、あなたの質問は次のとおりでした:

 Text.Combine({"It", "Worked"}, " ")

?

于 2016-03-14T20:57:10.163 に答える
0

@ImkeF から提供された情報のおかげで、この作業を行うことができました。

最初に 2 つのクエリを分割する必要があったため、Source1 は完全なlet in式で評価され、 #shared.

クエリ 1

let
  Source1 =  Table.FromList(
    {
      [Word1="It",Word2="Worked"]
    },
    Record.FieldValues,
    {"Word1","Word2"}
  )
in
  Source1

クエリ 2

let
    Source2 = Expression.Evaluate("Source"&"1", #shared)
in
    Source2

これには QUERY 2 があり、次のようになります。

╔═══════╦════════╗
║ Word1 ║ Word2  ║
╠═══════╬════════╣
║ It    ║ Worked ║
╚═══════╩════════╝

@ImkeF と @Alejandro に感謝します。

于 2016-03-14T23:17:23.317 に答える