0

大家好,提前感谢那些愿意花时间阅读并可能提供帮助的人。我确定我的问题很“愚蠢”,但无论如何我只是在使用 Pwer Query 迈出第一步,所以这是我的问题。

我有一个包含许多表的文件夹(在单独的文件中),它们都具有相同的结构,如下所示:

在此处输入图像描述

我想要实现的是组合该文件夹中的所有表(并且文件的数量将不断增加),知道列“m”对于所有表总是相同的(它包含从 0 到 100 的值增加 0.05)。所以,我想拥有:

第一个表中的“m”列和“tm”列,然后是所有其他文件(表)的所有“tm”列,标题名称将替换为文件名(如所说的“m”列总是相同)。

我希望使用 PowerQuery 自动执行此操作,以便每次添加文件(包含表,始终具有相同名称)时,都会更新大表。该表的结构如下:

在此处输入图像描述

(请注意,我会有一些#N/A,这对我来说没问题 - 只要它不会“干扰”Power Query。保留它会在制作图表时帮助我)

你有什么想法吗?

非常感谢,

克里斯

4

1 回答 1

0

看看这是否有帮助。粘贴到主页...高级编辑器...并编辑第一行以反映您的实际文件路径

从指定目录中读取所有 .xlsx,组合它们的表,然后在 tm 上进行数据透视

let Source = Folder.Files("C:\directory\subdirectory\"),
#"Filtered Rows" = Table.SelectRows(Source, each ([Extension] = ".xlsx")),
#"Added Custom" = Table.AddColumn(#"Filtered Rows", "GetFileData", each Excel.Workbook([Content],true)),
#"Expanded GetFileData" = Table.ExpandTableColumn(#"Added Custom", "GetFileData", {"Data", "Hidden", "Item", "Kind", "Name"}, {"Data", "Hidden", "Item", "Kind", "Sheet"}),
#"Remove filename extension" = Table.TransformColumns(#"Expanded GetFileData",{{"Name", each Text.BeforeDelimiter(_,".xlsx")}}),
#"Removed Other Columns" = Table.SelectColumns(#"Remove filename extension",{"Name", "Data"}),
List = List.Union(List.Transform(#"Removed Other Columns"[Data], each Table.ColumnNames(_))),
#"Expanded Data" = Table.ExpandTableColumn(#"Removed Other Columns", "Data", List,List),
#"Pivoted Column" = Table.Pivot(#"Expanded Data", List.Distinct(#"Expanded Data"[Name]), "Name", "tm", List.Sum)
in  #"Pivoted Column"
于 2021-11-11T13:24:57.193 回答