假设您从 Table1 范围内包含三列且没有列标题的源数据开始,此代码将在 powerquery 中工作(粘贴到主页...高级编辑器...)
它使用 split 函数创建两个自定义列以将 : 拆分为一个列表
然后将两个列表组合成一个表格,在我们展开之前
let Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
#"Added Custom" = Table.AddColumn(Source, "Custom", each Text.Split([Column2],":")),
#"Added Custom1" = Table.AddColumn(#"Added Custom", "Custom.1", each Text.Split([Column3],":")),
#"Added Custom2" = Table.AddColumn(#"Added Custom1", "Custom.2", each Table.FromColumns({[Custom],[Custom.1]})),
#"Expanded Custom.2" = Table.ExpandTableColumn(#"Added Custom2", "Custom.2", {"Column1", "Column2"}, {"Column1.1", "Column2.1"}),
#"Removed Columns" = Table.RemoveColumns(#"Expanded Custom.2",{"Column2", "Column3", "Custom", "Custom.1"})
in #"Removed Columns"
或者,下面可以同时处理任意数量的列
let Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
#"Changed Type" = Table.TransformColumnTypes (Source,List.Transform(Table.ColumnNames(Source), each {_, type text})),
TableTransform = Table.Combine(List.Transform(List.Transform(Table.ToRecords(#"Changed Type"), (x) => List.Transform(Record.ToList(x), each Text.Split(_,":"))), each Table.FromColumns(_, Table.ColumnNames(#"Changed Type")))),
#"Filled Down" = Table.FillDown(TableTransform,{"Column1"})
in #"Filled Down"