Excel提取中文,数字和字母,一分钟搞定!

SQL专栏

SQL数据库基础知识汇总

SQL数据库高级知识汇总

大家在处理Excel文档,经常会遇到一些将数字,字母,汉字混合在一起的数据,看着就头疼。而往往领导又希望我们将这些数据拆分开,一边咒骂那个录数据的人,一边又在苦恼该怎么办。

今天教大家一分钟搞定这种情况。

示例数据

以下图的数据为例

Excel提取中文,数字和字母,一分钟搞定!

我们想将中文,数字,英文单独分层3列来提取,提取完后的结果应该如下:

Excel提取中文,数字和字母,一分钟搞定!

方法一:快速填充

Excel新添加的一个快速填充功能,处理这类数据简直就是神技,只要写好例子,双击拖动然后选择自动填充即可,如下图:

Excel提取中文,数字和字母,一分钟搞定!

快速填充可以在开始菜单的右侧功能选项中找到,如下图:

Excel提取中文,数字和字母,一分钟搞定!

其快捷键是【Ctrl+E】,只要选择示例单元格,同时按住Ctrl+E就可以立即向下实现快速填充的功能。

方法二:Word来帮忙

我们将示例中的内容复制到Wold中,通过使用通配符依次获取到中文,数字和字母,如下图:

Excel提取中文,数字和字母,一分钟搞定!

先选中文档内容,按住【Ctrl+H】打开替换功能,依次使用三种通配符保留所需的数据类型。因为我们是要保留相应的类型,所以将非该种类型的其他字符全部替换掉,剩下的就是我们需要的数据了。

匹配中文的通配符:[一-龥],上图中前面加了一个!,表示非中文字符的会全被匹配到替换。

匹配数字的通配符:[0-9]

匹配字母的通配符:[a-zA-Z]

每次将替换后剩下的数据复制到Excel的新列即可。

方法三:自定义函数一键搞定

上面的方法都不错,但是有没有更好的办法实现上面的功能呢?答案是肯定的。

我们可以直接通过VBA代码来自定义一个函数,完成上面的功能。

按住【Alt+F11】打开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了,具体操作如下图:

Excel提取中文,数字和字母,一分钟搞定!

这样一个简单的数据提取功能就实现了。

觉得不错,欢迎分享给更多人

猜你喜欢

转载自blog.51cto.com/15057820/2653389