网站首页 > 技术文章 正文
文:徐军泰 首发:Excel同学会
数据提取 · Excel · 无规律 · 正则表达式
5mins 读完,今天的文章绝对建议收藏
大家好,我是徐老师。
最近做会员答疑时遇到不少数据提取方面的问题,尤其是无规律数据的提取。比如,下面这个问题中,要求从A列文本中将规格信息提取出来,即单元格中类似AxB,或者AxBxC的信息。
这个问题中,有几个难点,一起来看一下:
- A列文本长度无规律,要提取的规格数据位置不固定,因此使用函数法——No!行不通
- 目标数据格式不统一,例如有的单元格内为AxB,有的为AxBxC,因此快速填充法——No!行不通
- A、B、C的格式也不统一,有的只有数字,有的数字前面有φ符号,有的后面有mm,有的数字带小数点,有的不带……
- 数据量大,整张表共有1800余行
这样的表,用常规方法来处理,花两天时间也搞不定!基本就八个字——束手无策,无可奈何!
怎么办?我的解决方案是尝试在Excel超能力插件中应用【正则提取】功能来实现智能提取,来看我的操作。
01
编写正则表达式
在"Excel中怎么提取不规则文本?一篇文章,快速学会正则表达式+正则提取"一文中,我们介绍了正则表达式的用法。
所谓正则表达式,说白了,就是对文本规律/规则的一种表达方法。只要我们能将要提取的目标文本的规则表达清楚,用正则表达式写出来,就有可能快速完成提取。
由于目标文本前面已经描述了,有可能是AxB,也有可能是AxBxC。A、B、C的主体是数字信息,因此最基本的正则表达式可以写为:
\d+x\d+(x\d+)?
\d+代表至少1位数字,由于目标数据中A、B一定存在,但C不一定,因此(x\d+)后面加?表示出现0次或1次。
有了基本的正则框架,现根据A、B、C内部格式的多样性特点,最终将本例的正则表达式写为:
φ?\d+(\.\d+)?(mm)?xφ?\d+(\.\d+)?(mm)?(xφ?\d+(\.)?\d+)?(mm)?
具体含义可对照"Excel中怎么提取不规则文本?一篇文章,快速学会正则表达式+正则提取"一文中的正则字符含义来理解。
02
在Excel超能力中进行正则提取
1、在Excel超能力的【正则提取】框内,将已经编写的正则表达式粘贴进去,并按回车键;
2、在弹出的对话框中选择要处理的区域,A3:A1802;
3、确定后,在弹出对话框中选择结果保存的位置,这里选择B3单元格;
再次点击确定后,超能力将进行自动处理。约3秒钟时间,即可完成自动提取。
好了,今天的内容就介绍到这里,我是徐老师,感谢阅读。
如果文章有用,记得关注/收藏/转发。
关联阅读:
作者 徐军泰
——《左手数据,右手图表》作者,Excel同学会创办人,唯库、万门大学等平台特约讲师。
● 如何获取「Excel超能力」?
Excel超能力,是一款面向职场人的超实用Excel效率提升插件,同时兼容MSOffice和金山WPS。
插件意在提升Excel批量处理和操作方面的不足,弥补Excel在多表导航、密码管理等方面的功能,以及优化合并单元格等操作层面的体验,让用户具备Excel超能力!
目前,插件已有包括Excel文本处理、数据录入、数据处理、格式转化、报表合并与拆分、(动态)图表制作、文件批处理、文档加密解密、图片批处理、个人账号密码管理、快捷键、自定义函数等在内的10余个功能模块以及200+个功能,覆盖90%以上的常用操作和应用场景,帮助用户快速解决问题,节省95%的操作时间。
关注我,私信回复:666,可自动领取。
猜你喜欢
- 2025-03-20 正则表达式学习之替换分组练习(正则匹配并替换)
- 2025-03-20 「正则表达式」 一、正则表达式字符匹配(前端必懂 )
- 2025-03-20 人人都看得懂的正则表达式教程(正则表达式 详解)
- 2025-03-20 这几种正则表达式的“字符集合”,想要入门regexp函数,必须了解
- 2025-03-20 这几个冷门到你没听过的App,好用到为你打开新世界大门
- 2025-03-20 java正则-取出指定字符串之间的内容
- 2025-03-20 正则表达式 量词(正则表达式子表达式)
- 2025-03-20 Excel VBA【案例】正则表达式提取中文字符/五笔字型编码文本整理
- 2025-03-20 小心别落入正则回溯陷阱(正则表达式回溯陷阱)
- 2025-03-20 测试文章,为评论转发而生(测试评论功能)
- 04-29kali2021ping 外网不通
- 04-29我是如何用这3个小工具,助力小姐姐提升100%开发效率的
- 04-29注册下载啊
- 04-29Spring 中三种 BeanName 生成器!
- 04-29mysql学习9:创建数据库
- 04-29Linux之yum源详解
- 04-29夏日终曲/请以你的名字呼唤我/Call me by your name(无剧透)
- 04-29注释竟然还有特殊用途?一文解惑 //go:linkname 指令
- 最近发表
- 标签列表
-
- cmd/c (64)
- c++中::是什么意思 (83)
- 标签用于 (65)
- 主键只能有一个吗 (66)
- sqlset (59)
- phprequire_once (61)
- localstorage.removeitem (74)
- routermode (59)
- vector线程安全吗 (70)
- & (66)
- java (73)
- org.redisson (64)
- log.warn (60)
- cannotinstantiatethetype (62)
- js数组插入 (83)
- resttemplateokhttp (59)
- gormwherein (64)
- linux删除一个文件夹 (65)
- mac安装java (72)
- reader.onload (61)
- outofmemoryerror是什么意思 (64)
- flask文件上传 (63)
- eacces (67)
- 查看mysql是否启动 (70)
- 无效的列索引 (74)