Power Query中批量展开Excel指定工作表数据的实现方法
Power Query 批量提取指定工作表并展开嵌套数据列
我当前在Power Query中的数据结构如下(对应结构截图):ExcelData列存储了多个Excel文件的内容,每个文件都包含名为"Pivot Data"的工作表。需要实现的目标是:为ExcelData列中的每个文件打开该工作表,并展开工作表内Data列的嵌套表格。点击首个表格可查看对应视图(对应Excel视图截图)。
现有Power Query代码:
Source = CategoryAssignmentFolder, #"Removed Other Columns" = Table.SelectColumns(Source,{"Content"}), #"Added Custom" = Table.AddColumn(#"Removed Other Columns", "ExcelData", each Excel.Workbook(Binary.Buffer([Content]), true)) in #"Added Custom"
修改后的完整代码
Source = CategoryAssignmentFolder, #"Removed Other Columns" = Table.SelectColumns(Source,{"Content"}), #"Added Custom" = Table.AddColumn(#"Removed Other Columns", "ExcelData", each Excel.Workbook(Binary.Buffer([Content]), true)), // 筛选每个Excel文件中名为"Pivot Data"的工作表 #"Filtered Pivot Data Sheet" = Table.AddColumn(#"Added Custom", "Pivot Data Sheet", each Table.SelectRows([ExcelData], each [Name] = "Pivot Data")), // 展开工作表表格,提取Data字段 #"Expanded Pivot Data Sheet" = Table.ExpandTableColumn(#"Filtered Pivot Data Sheet", "Pivot Data Sheet", {"Data"}, {"Data"}), // 展开Data列中的嵌套表格,自动获取列名 #"Expanded Data" = Table.ExpandTableColumn(#"Expanded Pivot Data Sheet", "Data", Table.ColumnNames(#"Expanded Pivot Data Sheet"{0}[Data])) in #"Expanded Data"
步骤说明
- 筛选指定工作表:通过
Table.SelectRows从每个ExcelData的工作表列表中精准筛选出名称为"Pivot Data"的工作表,确保只处理目标工作表。 - 提取工作表数据:展开筛选后的工作表列,将工作表内的
Data字段(即实际表格数据)单独提取为一列。 - 展开嵌套表格:利用
Table.ColumnNames自动获取首个嵌套表格的列名,一次性展开所有列,无需手动指定列名,适配不同结构的表格(只要列名一致即可)。
内容的提问来源于stack exchange,提问作者OLGJ
相关产品推荐
相关产品推荐

