提取特定字符串,尝试下Excel中的新函数吧

职场   教育   2024-10-15 20:04   上海  

昨天有位群友的问题稍微有点意思,分享给大家。

如上图,需要从A列中提取订单号出来。

订单号码为19为数字,如果A列每个单元格中订单号前后都有标志性的字符,我们可以用FIND找到这个位置,进而推断出订单号的起始位置,然后用MID函数提取即可。

可是这位群友说订单号前后的字符不固定,那怎么办呢?

他想到用MID函数从字符串的每个位置提取19位字符然后乘以1,找到最大的那个数字就是订单号,如下:

这种思路理论上是不错的,但是会遇到一个问题,订单号为19位,Excel中的数字长度最长不能超过15位,超过以后后面的数字都会变为0,所以结果还是会出错。

这事还真不好搞对吧,用以前的函数我们得绞尽脑汁思考,多个函数嵌套。

看下Excel中的新函数吧。

解决这个问题轻而易举。

解释下这个函数的意思。

REGEXEXTRACT 函数允许基于提供的正则表达式从字符串中提取文本。可以从第一个匹配中提取第一个匹配项、所有匹配项或捕获组。

对于使用过正则朋友来说,这个函数很简单,对于不懂正则的同学来说,稍微学习下也能灵活应用它。

比如上例中,公式:=REGEXEXTRACT(A1,"\d{19}"),即我们想在A1单元格的字符串中提取与表达式"\d{19}"相匹配的字符串,"\d{19}"就是个正则表达式,"\d"代表数字的意思,数字也可以用[0-9]来表示,所以公式写成=REGEXEXTRACT(A1,"[0-9]{19}")也是可以的。

{19}表示匹配多少次,=REGEXEXTRACT(A1,"\d{19}")整个的意思就是匹配数字并且连续匹配19次,中间还不能断掉。

正则的英文单词是:Regular Expression,代码中常常简写为REGEX,EXTRACT有提取之意,两个单词综合下就有了REGEXEXTRACT,即用正则表达式提取字符串意思。

我不了解正则表达式,所以我不会用这个函数?

其实只要知道这个函数的简单语法就行,至于正则表达式,我们完全可以借助网络,所以不懂正则表达式也可以用好这个函数,况且工作中常需要的提取也就那么几个固定的场景。

本案例文件下载链接:
https://pan.quark.cn/s/1a2fd4621369

终身会员权益介绍


1、我录制的所有视频教程都可以免费学习,每门教程都有对应的素材,视频学习永久有效,视频学习中遇到的疑问可以直接找我答疑。


2、除了视频中遇到的问题之外,工作中遇到的问题也可以找我答疑(主要答疑Excel方面的问题)。


3、会员群里不定期会用腾讯会议开直播,根据大家的需求讲解一些实际工作中遇到的问题的解决方案、一些数据处理流程的优化等。


4、我百度网盘中一些常用的软件及学习资料都可以分享给您,包括各版本的Office,政企版WPS,WPS中的VBA插件,以及一些常用的软件等,即我网盘里的所有资源都可以共享给你。


5、终身会员可以分销我的课程,有提成的!


终身会员群只招收100名学员,XF:999,需要的朋友请加V:527240310

米宏Office
轻松学习OFFICE技能,让工作更高效!
 最新文章