当你看到一份将数字,字母,汉字混合在一起的Excel文档是什么感觉?一定非常头疼,特别是领导还要你把这些数据给拆分出来。这时候如果你一个一个手动处理,那就非常低效了,职场上怎么可以低效工作?
今天教大家一分钟搞定这种情况。
示例数据
首先我们准备一份数据为例,大家可以手动输入到Excel中(PS:像这样的数据一般是通过某种方式从数据库中导出的时候,将多个字段导出到一列了。)
现在我们要将中文,数字,英文单独拆分为3列,拆分完后的结果应该如下,我们先看下预览效果:
方法一:快速填充
从Excel 2013版开始,就新添加的一个快速填充功能,处理这类数据非常高效,我这里使用的是Excel 2016版本的。我们只要写好例子,双击拖动然后选择自动填充即可,如下图:
此外快速填充还可以在开始菜单的右侧功能选项中找到,如下图:
或者你也可以使用快捷键【Ctrl+E】,只要选择示例单元格,同时按住Ctrl+E就可以立即向下实现快速填充的功能。
注意:如何还没将Excel更新到2013版本以上的,可以在公众号后台的菜单栏里获取Office 2016版本软件,安装即可获得Excel 2016了。
方法二:Word来帮忙
方法二稍微麻烦一点,但是也比一个一个拆分来的快,如果你的Excel还没有快速填充功能,我们可以将示例中的内容复制到Wold中,通过使用通配符依次获取到中文,数字和字母,如下图:
具体操作方法如下:
将Excel中被提前的列复制粘贴到word文档中,使用【Ctrl+A】全选文档内容,按住快捷键【Ctrl+H】打开替换功能,依次使用三种通配符保留所需的数据类型。
中文的通配符:[一-龥],上图中前面加了一个!,表示非中文字符的会全被匹配到替换,这里其实就是删除掉不需要的字符。
数字的通配符:[0-9]
字母的通配符:[a-zA-Z]
每次将替换后剩下的数据复制到Excel的新列即可。
方法三:自定义函数一键搞定
上面的方法不是有版本限制,就是有点麻烦,不能做到二者兼具。有没有更好的办法实现上面的功能呢?答案是肯定的!
这个时候就需要我们有一定的代码功底了,不错就是VBA。
按住快捷键【Alt+F11】打开VBA窗口,然后点击窗口上的【插入】——【模块】,在弹出的代码窗口中输入如下一段VBA代码:
Function TQ(rng As Range, Optional i As String = "数字") With CreateObject("vbscript.regexp") Select Case i Case "数字": .Pattern = "\d" Case "字母": .Pattern = "[a-zA-Z]" Case "汉字": .Pattern = "[\u4e00-\u9fa5]" End Select .Global = True Set matches = .Execute(rng.Value) For Each Match In matches a = a & s & Match Next TQ = IIf(Len(a) > 0, a, "") End With End Function
然后关闭即可在Excel中使用上面的自定义函数TQ()了,具体操作如下图:
将TQ函数像其他系统函数一样输入到后面的列中,并输入要提取的类型,例如想提前汉字我们只需要输入TQ(A2,"汉字")就可以把第一列中的汉字提取出来,后面的数字和英文,只需要修改第二个参数即可。