终于自己做出来了,思路就是先合并列,合并以后拟透视,最后再拆分列。
还不会改这些函数,全手工操作的。
let
源 = Excel.CurrentWorkbook(){[Name="表1"]}[Content],
更改的类型 = Table.TransformColumnTypes(源,{{"楼栋", Int64.Type}, {"房号", Int64.Type}, {"姓名1", type text}, {"电话1", Int64.Type}, {"姓名2", type text}, {"电话2", Int64.Type}, {"姓名3", type text}, {"电话3", Int64.Type}, {"姓名4", type text}, {"电话4", Int64.Type}, {"姓名5", type text}, {"电话5", Int64.Type}, {"姓名6", type text}, {"电话6", Int64.Type}}),
合并的列 = Table.CombineColumns(Table.TransformColumnTypes(更改的类型, {{"电话1", type text}}, "zh-CN"),{"姓名1", "电话1"},Combiner.CombineTextByDelimiter(":", QuoteStyle.None),"客户1"),
合并的列1 = Table.CombineColumns(Table.TransformColumnTypes(合并的列, {{"电话2", type text}}, "zh-CN"),{"姓名2", "电话2"},Combiner.CombineTextByDelimiter(":", QuoteStyle.None),"客户2"),
合并的列2 = Table.CombineColumns(Table.TransformColumnTypes(合并的列1, {{"电话3", type text}}, "zh-CN"),{"姓名3", "电话3"},Combiner.CombineTextByDelimiter(":", QuoteStyle.None),"客户3"),
合并的列3 = Table.CombineColumns(Table.TransformColumnTypes(合并的列2, {{"电话4", type text}}, "zh-CN"),{"姓名4", "电话4"},Combiner.CombineTextByDelimiter(":", QuoteStyle.None),"客户4"),
合并的列4 = Table.CombineColumns(Table.TransformColumnTypes(合并的列3, {{"电话5", type text}}, "zh-CN"),{"姓名5", "电话5"},Combiner.CombineTextByDelimiter(":", QuoteStyle.None),"客户5"),
合并的列5 = Table.CombineColumns(Table.TransformColumnTypes(合并的列4, {{"电话6", type text}}, "zh-CN"),{"姓名6", "电话6"},Combiner.CombineTextByDelimiter(":", QuoteStyle.None),"客户6"),
逆透视的其他列 = Table.UnpivotOtherColumns(合并的列5, {"楼栋", "房号"}, "属性", "值"),
筛选的行 = Table.SelectRows(逆透视的其他列, each [值] <> ":"),
删除的列 = Table.RemoveColumns(筛选的行,{"属性"}),
按分隔符拆分列 = Table.SplitColumn(删除的列, "值", Splitter.SplitTextByDelimiter(":", QuoteStyle.Csv), {"值.1", "值.2"}),
更改的类型1 = Table.TransformColumnTypes(按分隔符拆分列,{{"值.1", type text}, {"值.2", type number}})
in
更改的类型1
|