加入 PowerBI自己学 知识星球:下载源文件,边学边练;遇到问题,还可以提问交流。
数据源中经常会有一些列的内容是混合内容或者脏数据,夹杂着中文、数字、英文、符号等。PowerQuery可以快速实现提取或移除中文、数字、英文、大写英文、小写英文、甚至是指定字符。
解决方案
提取函数是Text.Select,移除函数是Text.Remove,两者语法相同。以提取为例,字符对应的代码如下:
字符类型 | 代码 |
中文 | Text.Select([列],{"一".."龥"}) |
数字 | Text.Select([列],{"0".."9"}) |
英文 | Text.Select([列],{"A".."z"}) |
大写英文 | Text.Select([列],{"A".."Z"}) |
小写英文 | Text.Select([列],{"a".."z"}) |
指定字符,比如"*"、"?" | Text.Select([列],{"*","?"}) |
针对不同的字符或字符范围需求,变化“{}”中的内容。一和龥(yù)是字符库中常用汉字的开始和结尾,它们之间是常用的20902个中文汉字,0和9之间是10个数字,A和z之间是52个英文字母,A和Z之间是26个大写英文字母,a和z之间是26个小写英文字母。如果是几个指定字符,中间用英文逗号隔开。
举例
对下表进行各种提取处理。
1 提取中文
Text.Select([混合内容],{"一".."龥"})
2 提取数字
Text.Select([混合内容],{"0".."9"})
3 提取英文
Text.Select([混合内容],{"A".."z"})
4 提取大写英文
Text.Select([混合内容],{"A".."Z"})
5 提取小写英文
Text.Select([混合内容],{"a".."z"})
6 提取指定字符,"王"和"李"
Text.Select([混合内容],{"王","李"})
7 移除指定字符,"*"和"?"
Text.Remove([混合内容],{"*","?"})