Power Query:如何将不整洁的 Excel sheet 变成 table

Power Query: how to turn an untidy Excel sheet to a table

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

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

非常感谢您的支持!

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

你可以粘贴到首页...高级编辑器..

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", "GetFileData", {"Data", "Hidden", "Item", "Kind", "Name"}, {"Data", "Hidden", "Item", "Kind", "Sheet"}),
#"Removed Columns" = Table.RemoveColumns(#"Expanded GetFileData",{"Content", "Hidden", "Item", "Kind"}),
List = List.Union(List.Transform(#"Removed Columns"[Data], each Table.ColumnNames(_))),
#"Expanded Data" = Table.ExpandTableColumn(#"Removed Columns", "Data", List,List)
in  #"Expanded Data"