- 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
- 重排序的列
复制代码 |