SQL专栏

SQL数据库基础知识汇总

SQL数据库高级知识汇总

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

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

示例数据

以下图的数据为例

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

方法一:快速填充

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

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

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

方法二:Word来帮忙

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

先选中文档内容,按住【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 WithEnd Function

然后关闭即可在Excel中使用上面的自定义函数TQ了,具体操作如下图:

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

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

©著作权归作者所有:来自51CTO博客作者mb5fd8698f60f87的原创作品,如需转载,请注明出处,否则将追究法律责任

更多相关文章

  1. TCPIP卷一(9):EIGRP的数据包格式、TLV、 三张表
  2. 缓存+redis+容器
  3. TCPIP卷一(5):Classless【无类】与Classful【有类】区别 【包括数据
  4. hive 本机测试使用local模式可以加快执行效率
  5. 性能问题分析调优案例第16篇
  6. 2021年国内好用的可视化工具
  7. 2021年值得推荐的几个可视化软件
  8. Python VS Java如何选择?Python学习分析!
  9. django1.8数据迁移

随机推荐

  1. PHP扩展的URL Library快速入门
  2. Json调用JSON.parse:意外结束数据
  3. PHP+Apache环境安装与配置
  4. php $_SERVER中的SERVER_NAME 和HTTP_HOS
  5. 无法在Yii中更改项目的文件夹名称
  6. Mysql使用高流量数据库上的过滤器计算行
  7. PHP/MySQL性能测试
  8. 如何在PHP中接收和传递HTTP请求
  9. 评论: 网页浏览速度提高切实可行的七个方
  10. PHP:将simpleXML对象转换为二维数组