供参考,大部分手动操作即可。
let
源 = Excel.CurrentWorkbook(){[Name="表1"]}[Content],
去末行 = Table.RemoveLastN(源,1),
逆透视的列 = Table.UnpivotOtherColumns(去末行, {"系列", "架位"}, "属性", "值"),
末行 = Record.ToTable(Table.Last(源)),
匹配排架号 = Table.NestedJoin(逆透视的列, {"属性"}, 末行, {"Name"}, "表1", JoinKind.LeftOuter),
展开 = Table.ExpandTableColumn(匹配排架号, "表1", {"Value"}, {"表1.Value"}),
按分隔符拆分列 = Table.SplitColumn(展开, "值", Splitter.SplitTextByDelimiter("(", QuoteStyle.Csv), {"值.1", "值.2"}),
替换的值 = Table.ReplaceValue(按分隔符拆分列,")","",Replacer.ReplaceText,{"值.2"}),
插入的合并列 = Table.AddColumn(替换的值, "已合并", each Text.Combine({[表1.Value], Text.From([架位], "zh-CN")}, "-"), type text),
按照字符转换拆分列 = Table.SplitColumn(插入的合并列, "属性", Splitter.SplitTextByCharacterTransition((c) => not List.Contains({"0".."9"}, c), {"0".."9"}), {"属性.1", "属性.2"}),
重命名的列 = Table.RenameColumns(按照字符转换拆分列,{{"系列", "颜色"}, {"属性.1", "系列"}, {"值.1", "型号"}, {"值.2", "名称"}, {"已合并", "位置号"}}),
删除的其他列 = Table.SelectColumns(重命名的列,{"颜色", "系列", "型号", "名称", "位置号"}),
重排序的列 = Table.ReorderColumns(删除的其他列,{"系列", "型号", "名称", "颜色", "位置号"}),
排序的行 = Table.Sort(重排序的列,{{"位置号", Order.Ascending}})
in
排序的行 |