多簿多表合并(Power Query)
问题:同一文件夹内的多个工作簿,每个工作簿内工作表数量不定,需要合并到一个工作表里。
注意:每个工作表标题均在第一行
示例工作簿在C盘下的数据源文件夹中,每列标题分别为:日期、城市/地区、品名、类别、销量、单价、销售额
let
源 = Folder.Files("C:\数据源"),
重命名的列 = Table.RenameColumns(源,{{"Name", "工作簿名"}}),
替换的值 = Table.ReplaceValue(重命名的列,".xlsx","",Replacer.ReplaceText,{"工作簿名"}),
添加工作簿列 = Table.AddColumn(替换的值, "工作簿", each Excel.Workbook([Content],true)),
展开工作簿 = Table.ExpandTableColumn(添加工作簿列, "工作簿", {"Name", "Data", "Kind"}, {"工作表名", "Data", "Kind"}),
筛选的行 = Table.SelectRows(展开工作簿, each [Kind] = "Sheet"),
删除的列 = Table.RemoveColumns(筛选的行,{"Kind","Content", "Extension", "Date accessed", "Date modified", "Date created", "Attributes", "Folder Path"}),
展开Data = Table.ExpandTableColumn(删除的列, "Data", {"日期", "城市/地区", "品名", "类别", "销量", "单价", "销售额"}),
更改的类型 = Table.TransformColumnTypes(展开Data,{{"工作簿名", type text}, {"工作表名", type text}, {"日期", type date}, {"城市/地区", type text}, {"品名", type text}, {"类别", type text}, {"销量", Int64.Type}, {"单价", type number}, {"销售额", type number}})
in
更改的类型