let
源 = Folder.Files(Table.SplitColumn( Excel.CurrentWorkbook(){[Name="表2"]}[Content], "LJ", Splitter.SplitTextByEachDelimiter({"["}, QuoteStyle.Csv, false), {"LJ", "LJ0"})[LJ]{0}),
筛选的行 = Table.SelectRows(源, each not Text.Contains([Name], "合并")),
添加列 = Table.AddColumn(筛选的行, "DATA", each Excel.Workbook([Content],true,true)),
删除多余列 = Table.SelectColumns(添加列,{"DATA"}),
展开1 = Table.ExpandTableColumn(删除多余列, "DATA", {"Data"}, {"Data.1"}),
展开2 = Table.ExpandTableColumn(展开1, "Data.1", {"考号", "姓名", "语文", "数学", "英语", "政治", "历史", "地理", "生物"}),
分组的行 = Table.Group(展开2, {"考号", "姓名"}, {{"计数", each Table.FillUp( _,{ "语文", "数学", "英语", "政治", "历史", "地理", "生物" }){0}}}),
展开3 = Table.ExpandRecordColumn(分组的行, "计数", {"语文", "数学", "英语", "政治", "历史", "地理", "生物"})
in
展开3
思路:
前面的合并就不说了
后面主要是根据每个人的学号姓名分组
分组时不进行任何处理就可以得到Table
再利用的Table的填充功能把所有的成绩填充到第一行
然后选择每个表的第一行作为每个人的成绩
展开即可
10464102004403.rar
(305.44 KB, 下载次数: 0)
|