【数据清洗】从一列数据中自动获取行标题
今天我们要处理的数据是这样的:
我们希望的结果是这样的:
老规矩,转换必须是自动的,因此,我们还是使用Power Query。
01
实现方法
首先,选中数据区域的任意单元格,然后在数据选项卡中,点击“从表格”,
自动打开Power Query编辑器进行数据转换:
在主页选项卡中点击“拆分列”,并选择按分隔符,
在出现的对话框中,将分隔符选择为冒号(已经自动识别),
点击确定,得到结果如下,
接下来这一步,我们以前没有介绍过,是一个用的比较少的功能。
在“转换”选项卡中,点击“转置”,
得到结果如下,
在主页选项卡中,点击“将第一行用作标题”
得到结果,
点击关闭并上载,
得到最后结果,
02
代码
最后,将整个查询的M语言代码附在后面,供大家参考
let
源 = Excel.CurrentWorkbook(){[Name="表1"]}[Content],
更改的类型 = Table.TransformColumnTypes(源,{{"数据", type text}}),
按分隔符拆分列 = Table.SplitColumn(更改的类型, "数据", Splitter.SplitTextByDelimiter(":", QuoteStyle.Csv), {"数据.1", "数据.2"}),
更改的类型1 = Table.TransformColumnTypes(按分隔符拆分列,{{"数据.1", type text}, {"数据.2", type text}}),
转置表 = Table.Transpose(更改的类型1),
提升的标题 = Table.PromoteHeaders(转置表, [PromoteAllScalars=true]),
更改的类型2 = Table.TransformColumnTypes(提升的标题,{{"日期", type date}, {"产品", type text}, {"装瓶厂", type text}, {"指标", type text}, {"数据", Percentage.Type}})
in
更改的类型2
赞 (0)