【数据清洗】从一列数据中自动获取行标题

今天我们要处理的数据是这样的:

我们希望的结果是这样的:

老规矩,转换必须是自动的,因此,我们还是使用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)

相关推荐