https://m.toutiao.com/is/FJsorur/ Excel技巧:用powerquery制作工资条,新增数据自动更新! - 今日头条

    步骤:

    1. 添加表头列
    2. 添加空白列
    3. 以制表符合并原有列为内容
    4. 删除原有列,保留表头、内容、空白列,并按此排序列
    5. 选择所有列逆透视列
    6. 删除属性列,以制表符分隔值列,删除最后一行空白行

    结果预览:
    image.png

    1. let
    2. = Excel.CurrentWorkbook(){[Name="原表"]}[Content],
    3. 更改的类型 = Table.TransformColumnTypes(源,{{" 编号", Int64.Type}, {"姓名", type text}, {"基本工资", Int64.Type}, {"提成", Int64.Type}, {"总工资", Int64.Type}}),
    4. 已添加自定义 = Table.AddColumn(更改的类型, "表头", each " 编号 姓名 基本工资 提成 总工资
    5. "),
    6. 已添加自定义1 = Table.AddColumn(已添加自定义, "空白", each " "),
    7. 插入的合并列 = Table.AddColumn(已添加自定义1, "内容", each Text.Combine({Text.From([#" 编号"], "zh-CN"), [姓名], Text.From([基本工资], "zh-CN"), Text.From([提成], "zh-CN"), Text.From([总工资], "zh-CN")}, "#(tab)"), type text),
    8. 删除的列 = Table.RemoveColumns(插入的合并列,{" 编号", "姓名", "基本工资", "提成", "总工资"}),
    9. 重排序的列 = Table.ReorderColumns(删除的列,{"表头", "内容", "空白"}),
    10. 逆透视的列 = Table.UnpivotOtherColumns(重排序的列, {}, "属性", "值"),
    11. 按分隔符拆分列 = Table.SplitColumn(逆透视的列, "值", Splitter.SplitTextByDelimiter("#(tab)", QuoteStyle.Csv), {"值.1", "值.2", "值.3", "值.4", "值.5"}),
    12. 更改的类型1 = Table.TransformColumnTypes(按分隔符拆分列,{{"值.1", type text}, {"值.2", type text}, {"值.3", type text}, {"值.4", type text}, {"值.5", type text}}),
    13. 删除的列1 = Table.RemoveColumns(更改的类型1,{"属性"}),
    14. 提升的标题 = Table.PromoteHeaders(删除的列1, [PromoteAllScalars=true]),
    15. 更改的类型2 = Table.TransformColumnTypes(提升的标题,{{" 编号", type text}, {"姓名", type text}, {"基本工资", type text}, {"提成", type text}, {"总工资#(lf)", type text}}),
    16. 替换的值 = Table.ReplaceValue(更改的类型2,null,"",Replacer.ReplaceValue,{" 编号", "姓名", "基本工资", "提成", "总工资#(lf)"}),
    17. 删除的底部行 = Table.RemoveLastN(替换的值,1)
    18. in
    19. 删除的底部行

    PQ制作工资条.zip