- let
- 源 = Excel.Workbook(File.Contents("C:\Users\飞飞\Desktop\VBA\考核表.xlsx"), null, true),
- 筛选的行 = Table.SelectRows(源, each ([Kind] = "Sheet") and ([Item] <> "考核汇总")),
- 删除的列 = Table.RemoveColumns(筛选的行,{"Item", "Kind", "Hidden"}),
- 已添加自定义 = Table.AddColumn(删除的列, "转", each Table.PromoteHeaders(Table.FromColumns(List.Zip(List.Skip(List.Zip(Table.ToColumns([Data])),each not List.Contains(_,"序号") ))))),
- 删除的其他列 = Table.SelectColumns(已添加自定义,{"Name", "转"}),
- #"展开的“转”" = Table.ExpandTableColumn(删除的其他列, "转", {"序号", "部门名称", "考核内容", "责任人", "小计"}, {"序号", "部门名称", "考核内容", "责任人", "小计"}),
- 分组的行 = Table.Group(#"展开的“转”", {"部门名称"}, {{"ALL", each _, type table [序号=number, 部门名称=text, 考核内容=text, 责任人=text, 小计=number]}}),
- 排序的行 = Table.Sort(分组的行,{{"部门名称", Order.Ascending}}),
- 已添加自定义1 = Table.AddColumn(排序的行, "自定义", each [a={"备注"}&List.Skip(Table.ColumnNames([ALL])),b=List.Sum([ALL][小计]),c=Table.ToRows([ALL]),d={"","","小计","","",b},e=Table.RemoveColumns(Table.FromRows(List.Combine( {c,{d}}),a),{"序号"}) ][e]),
- 删除的其他列1 = Table.SelectColumns(已添加自定义1,{"自定义"}),
- #"展开的“自定义”" = Table.ExpandTableColumn(删除的其他列1, "自定义", {"备注", "部门名称", "考核内容", "责任人", "小计"}, {"备注", "部门名称", "考核内容", "责任人", "小计"}),
- 重排序的列 = Table.ReorderColumns(#"展开的“自定义”",{"部门名称", "考核内容", "责任人", "小计", "备注"})
- in
- 重排序的列
复制代码 |