【问题标题】:Managing folder refresh in PowerQuery/ Excel在 Power Query/Excel 中管理文件夹刷新
【发布时间】:2025-12-15 17:20:12
【问题描述】:

我正在将文件夹中的几个 excel 文件上传到 PowerQuery 并将它们转换为适当的格式。 我们每周都有一个excel文件。所以总共有52个文件。 PowerQuery/Excel 现在需要大约 5 分钟来刷新此连接。 如果一周结束,文件将不再被编辑。 所以我的目标是,PowerQuery 只会刷新本周。 这些文件具有以下标题: "部门市场g(1)"

有人知道如何改善这种联系吗?

最好的问候 约书亚

【问题讨论】:

  • 如果不知道“转换”涉及什么,就会涉及到太多的猜测工作。另外,考虑到您要转换的文件数量,您怎么知道 5 分钟是不合理的?您能否提供有关您的代码的更多详细信息?
  • 该文件夹包含 52 个文件。转变基本上是不同的。只需删除一些行和列,过滤和替换值。刷新单个表可能需要 10 秒。
  • 52 * 10 秒超过 8 分钟,因此 5 分钟似乎是刷新所有这些的合理时间。不幸的是,我不认为在 Excel 中进行增量刷新的好方法。
  • 我可以想象一个设置,您将 52 周的数据的初始加载设置为文件中的本地表,将其转换为自链接查询(其中源和输出是同一个表)。然后,您仅对最近两周的外部数据设置一个查询,将其附加到您的自链接查询中,让它控制重复/更新的数据,然后让它也丢弃超过 52 周的数据如果你想。但是呃……我不能说这是一个“好”的方法。
  • @joshua1990,如果您发布您的M/查询代码代码,您可能会收到更好/更相关的建议。也许您的代码可以优化(每个文件 10 秒用于过滤和替换在现代计算机上似乎很多,但猜测它也取决于文件/内容的大小)。如果您有链接到您正在加载的表的公式(特别是如果您的输出表有很多行),则可能值得在刷新之前“打破”公式,然后在刷新后恢复它们(这表明如果您的查询很慢,或者只是加载到工作表才是瓶颈)。

标签: excel powerquery


【解决方案1】:

您可以按文件的刷新/修改日期过滤文件,然后将此新数据附加到现有数据中,以避免从多个文件中加载它。

过滤代码:

Source = Folder.Files("FILEPATH"),

lastrefresh = Excel.CurrentWorkbook(){[Name="LastRefresh"]}[Content]{0}[LastRefresh],

#"Filtered Rows" = Table.SelectRows(Source, each [Date modified] > lastrefresh),

【讨论】: