快速提取单元格内容


快速提取单元格内容

之前在我的课程中给大家讲过如何利用正则表达式或VB来提取Excel单元格中的中英文,如果字段长度比较规律的话 , 分列也是一个首选的好方法 。
今天给大家分享的方法是如何用Power Query来快速分离和提取 , 规则设置好之后,后续只要刷新数据 , 就可以一劳永逸了 。
案例如下:
快速提取单元格内容

一共有4组数据,感觉有规律,又感觉毫无规律 。很显示,这4组数据用分列肯定不好使,数据太凌乱了 。
首先将这四组数据分别导入到Power Query之中,我们挨个按列看看如何分离吧 。
快速提取单元格内容

先看表2,这张表算是案例中最有规律的一组数据了,只有中英文,而且中文在前,英文在后 。要做的就是分别提取中文和英文 。
操作步骤:
点击添加列中的自定义列,弹出对话框中输入列名称,公式栏中输入:
Text.Remove([规律1],{"A".."z"})
如图所示:
快速提取单元格内容

完成之后点击确定,结果如下:
快速提取单元格内容

再来提取英文,同样需要新增一列,跟上述步骤一样 , 弹出的自定义列中输入新列名 , 公式中输入:
Text.Remove([规律1],{"一".."龟"})
快速提取单元格内容

确定后结果如下:
快速提取单元格内容

是不是特别畅快?!
而且这种分离方法,不管你的中文在前还是在后,都对结果不产生任何影响,始终得到的就是现在看到的中英文 。


接下来看表3,也稍微有点规律,单元格中只有中文、英文和数字,只是排列顺序没有规律 , 是个乱的:
快速提取单元格内容

这种就不能按照上面的方法进行了,因为上面那种方法去除中文会留下英文和数字,去除英文留下的就是中文和数字了 。
操作步骤:
同样点击添加列中的自定义列,弹出对话框中输入新列名,公式处输入:
Text.Remove([规律2],{" ".."~"})
快速提取单元格内容

注意第一个引号中要输入一个空格 。完成之后确定,结果如下:
快速提取单元格内容

接下来同样添加列的方法输入公式来分别提取英文和数字 。
提取英文,公式为:
Text.Remove([规律2],{"一 ".."龟","0".."9"})
快速提取单元格内容

提取数字,公式为:
Text.Remove([规律2],{"A".."z","一".."龟"})
快速提取单元格内容

最终结果:
快速提取单元格内容



最后来看表1和表4吧 , 都有点乱,还有乱入的符号,同样分三列分别提取中文,英文和数字 。
提取中文:
快速提取单元格内容

【快速提取单元格内容】提取英文:
快速提取单元格内容

提取数字:
快速提取单元格内容

最终结果:
快速提取单元格内容

貌似Text.Select比Text.Remove来得更快 。
最后一张表4就留给大家自行练习吧 。
结果如下:(注意提取的英文之间保留了空格 , 且没有特殊符号)
快速提取单元格内容

如果你对Power Query的课程感兴趣,可以点击专栏进入课程链接 。

相关经验推荐