0

我是 Microsoft Query 的新手,所以我的术语可能不是标准的。

我正在设置一个 Excel 文档来充当仪表板。该文档将位于多个用户的共享文件夹中。

我在 Excel 中创建了一个工作表,其中有一个读取 Excel 文档路径的单元格。

我计划使用 Microsoft Query 来使用位于的路径让我们说"Sheet1(A1)"找到该目录中的所有文件并将它们组合起来。

在运行查询时,我可以设置它以便它执行此操作。但是,在尝试合并此目录中的文件时,我遇到了问题。它可以在我的本地机器上运行,但是当用户使用他们的凭据在另一台机器上尝试时,用于查找输入的路径被硬编码到我的路径中。

如何将"Sheet1(A1)"值携带到查询/转换中,以使路径保持动态?

以下是我的工作流程的简要概述:

导入第一部分的“来源”为。其中“路径”指的是位于 Sheet1(A1) 中的命名单元格:

= Folder.Files(Excel.CurrentWorkbook(){[Name="path"]}[Content]{0}[Column1])

我通过仅过滤文件名中的特定术语(有多个)来精简来源。

= Table.SelectRows(Source, each Text.StartsWith([Name], "AS") or Text.StartsWith([Name], "As"))

这是硬编码开始的地方,然后我将过滤后的文件展开并合并为一张。

= Table.AddColumn(#"Filtered Rows", "Transform File from Query1 (2)", each #"Transform File from Query1 (2)"([Content]))

这是路径被硬编码的地方,我想使用单元格 A1 中的值。

= #"Filtered Rows"{[#"Folder Path"="**C:\Users\User\Path\**",Name="As_Test.xlsx"]}[Content]

正如我所说,查询的来源有效,但我无法通过该动态文本,或者至少不精通查询语法来通过它。

4

1 回答 1

1

使用当前版本的 Excel,Power Query(在 Excel 2016 中称为 Get and Transform)将比 Microsoft Query 做得更好,但从您的代码示例来看,您根本没有使用 Microsoft Query,但您确实在使用 Power Query .

您可以在工作表中使用一个单元格,从打开文件的用户的角度存储当前文件夹路径。然后,您可以将该路径作为参数提供给 Power Query。

公式

=LEFT(CELL("filename",A1),FIND("[",CELL("filename",A1))-1)

将为您提供当前文件的路径。(如果它不能确保工作簿已保存,而不是新文件)

有几种不同的方法可以将单元格值用作 Power Query 中的参数。一种选择是将此公式放在参数表中,如 Ken Puls 在他关于Power Query 参数表的文章中所述,只是您的方案。

于 2018-03-27T09:34:47.987 回答