excel数据清洗的基本流程(Excel清洗数据这么脏的数据也是分分钟搞定)

本期内容主要给大家介绍一个真实的案例,使用Excel Power Query来清洗数据的例子。前几天在QQ群里看到,很多的大佬都给了多种多样的解法,这里选择一种比较常规的方法来给大家讲解一下。

案例

要求:将每行的备注列的数据替换掉扫码编号外,对于症状或者项目进行拆分到行。如有-2,-3,-4的这样,数字表示重复几次。

excel数据清洗的基本流程(Excel清洗数据这么脏的数据也是分分钟搞定)(1)

结果样式(局部)如下图所示。

excel数据清洗的基本流程(Excel清洗数据这么脏的数据也是分分钟搞定)(2)

对于这个问题,使用Excel中的Power Query功能来清洗是比较简单的。但是使用常规的鼠标操作有些困难,使用M函数的话,将会就得很容易。

清洗思路

先对备注列按文字与数字进行拆分成list,然后再将每个list按“-”拆分成list,将拆分后的list的文本按数字重要即可,使用到List.Repeat函数。最后展开list即可。

操作步骤

Step-01:将数据加载至Power Query编辑器中。

Step-02:先对备注列使用Table.TrasnformColumns函数进行转换,转化时执行Splitter.splitTextBicharacterTansition函数进行拆分。

Splitter.SplitTextBicharacterTansition函数是一个拆分器,该函数有两个参数,一个是before,即第一个,用来表示第一个特征,如这里的数字{"0".."9"};第二个after用来表示第二个特征,即这里的文本,{"一".."龟"}。

excel数据清洗的基本流程(Excel清洗数据这么脏的数据也是分分钟搞定)(3)

Step-03:然后将对公式进行嵌套,删除每个list里面的第一个文本,即扫码编号。可以使用List.Skip函数。

excel数据清洗的基本流程(Excel清洗数据这么脏的数据也是分分钟搞定)(4)

Step-04:再对每一个List中的文本使用“-”进行拆分,可以使用到Text.Split函数,但是对于每个List中的文本进行操作要使用函数List.Transform函数。

excel数据清洗的基本流程(Excel清洗数据这么脏的数据也是分分钟搞定)(5)

Step-05:接下来对来构造一个Record,先取来一每个list中的第一个元素,接取出来第二个元素,取元素的时候可以使用深化,使用List.Repeat函数进行重复次数即可,但是需要注意的是拆分的数字为文本,需要使用Number.From转化成数值方可。

excel数据清洗的基本流程(Excel清洗数据这么脏的数据也是分分钟搞定)(6)

但是从上面的图中观察发现有的报错了,这是因为如下图所示的文本串没有可重复的数字的时候就会报错。

excel数据清洗的基本流程(Excel清洗数据这么脏的数据也是分分钟搞定)(7)

所以对上面的情况还要使用容错语句进行容错,即try……otherwise……,在Power Query中使用语句时不区分大小时,如if……then……等。但是函数必须区分大小写。但不是所有的函数都会区分大小写,如#table,像这种带#号的函数。

excel数据清洗的基本流程(Excel清洗数据这么脏的数据也是分分钟搞定)(8)

Step-06:接着嵌套函数,将每一行的list里面的所有的list进行合并,可以使用List.Combine函数。

excel数据清洗的基本流程(Excel清洗数据这么脏的数据也是分分钟搞定)(9)

Step-07:最终将“备注”列进行展开即可。

excel数据清洗的基本流程(Excel清洗数据这么脏的数据也是分分钟搞定)(10)

所以整体的代码如下图所示:

excel数据清洗的基本流程(Excel清洗数据这么脏的数据也是分分钟搞定)(11)

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页