Excel Power Query 加载时间 - 为什么依赖查询会重新加载 CSV 文件数据?

Excel Power Query 加载时间 - 为什么依赖查询会重新加载 CSV 文件数据?

我在 Excel 中有一系列查询,它们都依赖于初始查询,该查询从 CSV 文件加载数据,处理数据并将其加载到工作表中的表格中。其余查询都使用工作表表格作为源,不使用外部数据源。

当我单独重新加载它们时,它们似乎花费的时间比应有的时间要长,而且似乎正在访问 CSV 文件本身。

根据一些互联网研究,我拥有查询的所有全局和数据设置,以优化加载(快速加载、关闭后台等),并且考虑到数据量,原始查询加载/处理是可以接受的。似乎一旦我将处理后的数据放在工作簿中的表中,该表和其他表的查询就不需要返回数据源文件了。

我只是想知道我是否遗漏了什么。谢谢!

答案1

当查询引用另一个查询作为源查询(或在合并或追加步骤中)时,每次刷新引用查询时,整个源查询逻辑都会运行。如果有 5 个查询引用同一个源查询,则源查询逻辑将并行运行 5 次(默认情况下)。这显然效率低下。

在 Excel 场景中,避免这种低效率的模式是将源查询设置为加载至Excel 表。然后可以将引用查询指向该 Excel 表作为其来源。

这确实给你带来了协调刷新的挑战,因为点击“全部刷新”按钮可能会导致结果不一致。我通常使用查询组或录制刷新宏来缓解这种情况。

答案2

谢谢 Mike。您说得对,尽管刷新依赖查询似乎确实会刷新父查询(如有关其正在访问哪些 CSV 文件的消息所证实的),比直接刷新父查询要快一些。

我按照你建议的方式解决了这个问题。我没有使用 Power Query 编辑器工具栏中的“管理/引用”按钮,而是生成

来源 = #“父查询”

我使用“获取数据”->“表/范围”或“M 编辑器”从父查询的表中获取数据

Source = Excel.CurrentWorkbook(){[Name="父查询表名称"]}[Content]

现在可立即加载。由于我正处于项目开发阶段,因此管理刷新不是问题。完成后我会想出一个系统。

谢谢!

相关内容