使用 Power Query 从具有多个子目录的多个工作簿中提取多个工作表

Using PowerQuery to pull multiple worksheets from multiple workbooks within multiple subdirectories

基本上,我受困于 .xls 工作簿的层次结构,我想使用 PowerQuery 将其编译到 PowerPivot 数据模型中。

主目录 - 零售商文件夹#1 - 品牌 #1 工作簿 - SKU 工作表 #1 - SKU 工作表 #2 - 品牌 #2 工作簿 - 零售商文件夹 #2 - 品牌 #1 工作簿 - SKU 工作表 #1 - SKU 工作表 #2 - 品牌 #2 工作簿

是否有使用 PowerQuery 执行此操作的简单方法?

一个问题:每个工作簿的末尾都包含 2 个需要排除的摘要选项卡。同样,每个文件夹都包含一个摘要工作簿,该工作簿也是需要排除的聚合。

应该是。您可以使用从文件夹 (Folder.Files) 访问 Excel 工作簿并过滤掉摘要工作簿。然后,对于剩余的工作簿,您可以创建一个函数,当给定一个 Excel 工作簿时,该函数会转到您想要的工作表并删除最后两列。您可以添加自定义列,然后调用此函数。

我个人更喜欢避免函数,因为我发现它们更难调试和维护。相反,我只是使用 From Folder 并过滤到我想要的文件,然后使用以下公式添加自定义列:

= Excel.Workbook ( [Contents] )

然后您可以将其扩展为 sheet 和表格,过滤该列表并扩展 Excel.Workbook.Data 列以获取数据单元格。您可以保留足够的元数据列来标识每一行的来源(哪个文件夹/文件/sheet)。

这使您可以在 PQ 中维护整个查询 UI。当出现问题时(Excel 来源不可避免),您可以逐步完成整个过程并隔离问题。

我只在有来自不同源查询的多个调用时才使用函数。这听起来不像这里的情况。