Power Query:如何将凌乱的 Excel 工作表变成表格

问题描述

我是 PowerQuery 的新手。我有许多具有完全相同结构的 .XLSX 文件在这文件中的每一个中,我想访问许多特定值(使用它们的列/行位置,即“B1.Value”)并以输出的方式对其进行排序一个表格,每一行都与一个 .XLSX 文件相关。

到目前为止,我有一些 VBA 脚本可以通过一个一个获取这些文件提取每个文件的有趣值并将它们分配到另一个工作簿中的新行来完成这项工作。有没有办法在 PowerQuery 中做类似的(也许更干净的)工作?找了很久,没找到类似的问题。

非常感谢您的支持

解决方法

您确实需要发布源文件和所需输出的示例,但一般来说,像下面这样的 powerquery 会将目录中所有 xlsx 文件的数据合并到一个大表中,您通常可以解析出您要查找的内容

您可以粘贴到主页...高级编辑器...

let Source = Folder.Files("C:\subdirectory\directory"),#"Filtered Rows" = Table.SelectRows(Source,each ([Extension] = ".xlsx")),#"Removed Other Columns" = Table.SelectColumns(#"Filtered Rows",{"Name","Content"}),#"Added Custom" = Table.AddColumn(#"Removed Other Columns","GetFileData",each Excel.Workbook([Content],true)),#"Expanded GetFileData" = Table.ExpandTableColumn(#"Added Custom",{"Data","Hidden","Item","Kind","Name"},"Sheet"}),#"Removed Columns" = Table.RemoveColumns(#"Expanded GetFileData",{"Content","Kind"}),List = List.Union(List.Transform(#"Removed Columns"[Data],each Table.ColumnNames(_))),#"Expanded Data" = Table.ExpandTableColumn(#"Removed Columns","Data",List,List)
in  #"Expanded Data"