Power Query Text.M函数超级清洗不规则数据

内容提要

在Power Query中,运用Text.Select和Text.Remove两个文本函数,几乎可以解决所有数据杂乱的情况。


不怕死神一样的对手,就怕猪一样的队友。

我们可能都有碰到过非常混乱的原始数据,Power Query有非常强大的数据清洗功能,比如菜单界面提供了“拆分列”和“提取”,可以很方便的在字母大小写、数字和非数字之间拆分数据。

Power Query Text.M函数超级清洗不规则数据


但如果碰到毫无规律的文本、数字、英文字母、标点符号混合的单元格数据,清洗时需要用到两个Text.函数。

Text.Remove(文本或列表,{要移除的字符})

Text.Select(文本或列表,{要提取的字符})


案例1

Power Query Text.M函数超级清洗不规则数据

单元格中英文的位置毫无规律,如果只保留中文名

可以用到Text.Remove函数

添加自定义列,输入函数:

品牌1中文=Text.Remove([品牌1],{"A".."Z"})

说明:{“A”..“Z”} 是生成了一个从A到Z的列表,只要是大写字母(不考虑顺序),就从单元格中移除

PQ用的是M语言,M语言对函数字母的大小写有严格要求。


案例2

Power Query Text.M函数超级清洗不规则数据

如果只保留英文名

添加自定义列,输入函数:

品牌1英文=Text.Remove([品牌1],{"一".."龟"})

说明:PQ 的中文字符以 Unicode(统一码)连续储存,

“一”的 Unicode最小,“龟”的 Unicode 最大,

因此{“一”..“龟”}就包含了所有的汉字列表(通常情况下)。


案例3

Power Query Text.M函数超级清洗不规则数据

单元格中有大小写英文,如果只保留中文名

添加自定义列,输入函数:

品牌2中文=Text.Remove([品牌2],{"A"..“z"})

说明:如果要移除的英文字母包含大小写,就把{“A”..“Z”} 中大写“Z”变成小写“z”


案例4

Power Query Text.M函数超级清洗不规则数据

单元格中有大小写英文、还有位置不规则的数字,如果只保留数字

添加自定义列,输入函数:

品牌3数字=Text.Remove([品牌3],{"A".."z","一".."龟"})

说明:如果要同时移除的英文字母和汉字,则在要移除的两种字符中间用逗号“,” {"A".."z","一".."龟"})


案例5

Power Query Text.M函数超级清洗不规则数据

如果要移除数字,只保留汉字和英文

添加自定义列,输入函数:

品牌3中文英语=Text.Remove([品牌3],{"0".."9"})

说明: {“0”..“9”} 是生成了一个从0到9的列表,只要是数字(不考虑顺序),就从单元格中移除


案例6

Power Query Text.M函数超级清洗不规则数据

单元格有不规则的标点符号,英文,中文,数字,如果只保留数字

可以用到Text.Select函数

添加自定义列,输入函数:

品牌4数字=Text.Select([品牌4],{"0".."9"})

说明:Text.Select和Text.Remove刚好相反,Text.Remove是移除字符, Text.Select是提取字符。


总结


Power Query Text.M函数超级清洗不规则数据


Power Query Text.M函数超级清洗不规则数据

练习素材,扫描下载

关注公众号,回复“PQ Text”,获取下载文件。

发表评论
留言与评论(共有 0 条评论) “”
   
验证码:

相关文章

推荐文章