Excel Power Query の読み込み時間 - 依存クエリが CSV ファイル データを再読み込みするのはなぜですか?

Excel Power Query の読み込み時間 - 依存クエリが CSV ファイル データを再読み込みするのはなぜですか?

Excel には一連のクエリがあり、それらはすべて、CSV ファイルからデータを読み込み、処理してワークシートのテーブルに読み込む最初のクエリに依存しています。残りのクエリはすべて、ワークシート テーブルをソースとして使用し、外部データ ソースは利用しません。

個別に再ロードすると、通常よりも時間がかかるようで、CSV ファイル自体にアクセスしているように見えます。

インターネットで調べた結果、クエリのグローバル設定とデータ設定をすべて設定して読み込みを最適化しており (高速読み込み、バックグラウンドをオフにするなど)、データの量を考慮すると元のクエリの読み込み/処理は許容範囲内です。処理済みのデータをワークブックのテーブルに格納しておけば、そのテーブルやその他のテーブルのクエリでデータソース ファイルに戻る必要はないようです。

何か見逃しているのではないかと思っています。ありがとうございます!

答え1

クエリが別のクエリをソースとして参照する場合 (またはマージまたは追加ステップで)、参照クエリが更新されるたびに、そのソース クエリ ロジック全体が実行されます。同じソース クエリを参照するクエリが 5 つある場合、ソース クエリ ロジックは 5 回並列で実行されます (既定)。これは明らかに非効率的です。

Excelのシナリオでは、その非効率性を回避するパターンは、ソースクエリを次のように設定することです。ロード先Excel テーブル。その後、参照クエリをソースとしてその Excel テーブルにポイントできます。

この場合、[すべて更新] ボタンを押すと結果が不一致になるリスクがあるため、更新を調整することが課題となります。私は通常、クエリ グループを使用するか、更新マクロを記録することでこの問題を軽減します。

答え2

ありがとう、Mike。あなたの言う通りのようですが、従属クエリを更新すると、親クエリを直接更新するよりもいくらか速く更新されるようです (どの CSV ファイルにアクセスしているかに関するメッセージで確認できます)。

私はあなたが提案した方法で問題を解決しました。Power Query Editorツールバーの「管理/参照」ボタンを使用する代わりに、

ソース = #"親クエリ"

親クエリのテーブルからデータを取得するには、「データの取得」->「テーブル/範囲」またはMエディタを使用します。

ソース = Excel.CurrentWorkbook(){[Name="親クエリ テーブル名"]}[コンテンツ]

今では瞬時に読み込まれます。プロジェクトの開発段階にあるため、更新の管理は問題ではありません。完了したらシステムを考えます。

ありがとう!

関連情報