专栏名称: 秋叶PPT
你爱学习,爱动手,爱分享?关注我们就对了!PPT、Excel、Word、职场成长,每天早上三分钟,碎片时间学起来!
目录
相关文章推荐
秋叶PPT  ·  PPT动态时间轴,一分钟秒杀全场! ·  3 天前  
曹将  ·  今天就买这个 ·  6 天前  
曹将  ·  最近什么值得买? ·  1 周前  
51好读  ›  专栏  ›  秋叶PPT

这3个新增的Excel正则函数,太牛X了!

秋叶PPT  · 公众号  · PPT  · 2024-09-19 08:17

正文

点击👆关注【秋叶 Excel】

发送【6】

领取秋叶 Excel 6 年精选文章合集


作者:小爽

编辑:卫星酱



大家好,这里是秋叶编辑部,我是会 Excel 数据处理的小爽~


之前我们讲过 WPS 新增的、一个非常强大的文本处理函数—— Regex 函数。(文章请戳)


它既可以做文本判断,也可以做文本提取,甚至可以做文本替换。


Regex 函数其实就是下面三个正则函数的集合版本。


分别是 :

文本判断:Regextest

文本提取:Regexextract

文本替换:Regexreplace


如今,Office 365 中的 Excel,也更新这三个正则函数了,WPS 和 Excel 的正则函数语法差不多,大家可以对照着学习。


鉴于有小伙伴想看看进阶一点的正则函数。



今天,小爽就继续来聊聊正则函数。

我们在日常工作中,除了需要对文本进行判断,提取,替换外,还可能需要对文本进行插入,拆分等操作。

大家跟我一起往下看,进一步认识其他的正则表达式。

正则表达式是一种用于匹配和操作文本的强大工具,它是由一系列字符和特殊字符组成的模式,用于描述要匹配的文本模式。

正则表达式可以在文本中查找、替换、提取和验证特定的模式。

PS.本文使用 Excel 里面的正则函数进行演示。


文本插入


如下图,我们需要在中文和英文/数字中,插入一个分隔符「-」,以便更好地查看信息。


传统的做法是:利用字节数确定文本的位置,然后进行替换。

=REPLACE(A2,LENB(A2)-LEN(A2)+1,0,"-")


这种做法也可以,但是如果单元格开头不是文本,公式就会出错!!


所以,最好的方法就是利用强大的正则函数!

如下图:
=REGEXREPLACE(A2,"(.*[一-龟])(\w+)","$1-$2")


我们来看看这个公式:
=REGEXREPLACE(A2,"(.*[一-龟])(\w+)","$1-$2")

Regexreplace 语法:

=REGEXREPLACE(字符串,正则表达式,替换表达式,[指定替换实例],[是否区分大小写])

  • 字符串:A2 单元格

  • 正则表达式:"(.*[一-龟])(\w+)"

  • 替换表达式:"$1-$2"


假设字符串为 "excel小爽xiaoshuang"。

(.*[一-龟]):第一分组
  • .*  除换行符之外的任意字符,*代表 0 到多个

  • [一-龟]:后面紧接着一个中文字符

第一组匹配到的字符为 excel 小爽。

(\w+):第二分组:
  • \w:在正则表达式中,它表示字母数字字符,包括所有字母(a-z、A-Z)和数字(0-9)的字符。它等同于 "[A-Za-z0-9_]"

  • \w+ 也就是代表一个到多个

第二组匹配到的字符为 xiaoshuang。

替换表达式:"$1-$2"
  • $1 代表第一分组的内容,也就是"excel小爽"
  • $2 代表第二分组的内容,也就是"xiaoshuang"
"$1-$2",也就是"Excel小爽-xiaoshuang"。


拆分函数 Textsplit 目前还不能进行正则语法拆分,不过我们可以借助正则函数 Regexextract!
文本拆分


如下图所示:我想提取出日期之间的姓名。


用 Textsplit 函数来做,需要先把数字和分隔符进行数组拼接后,再进行拆分。

=TEXTSPLIT(A2,VSTACK(SEQUENCE(10,1,0),"-"),,1)


如果用正则函数来做,不需要像拆分函数那样进行拼接,只要把需要拆分的字符,放在中括号中取反即可。

=REGEXEXTRACT(A2,"[^0-9-]+",1)


Regexextract 语法:

=REGEXEXTRACT(字符串,正则表达式,[匹配方式])

匹配方式中:
0 - 第一个匹配项(默认值)
1 - 所有匹配项 
2 - 捕获第一个匹配项的组

第三参数为 1,因为我们是要匹配所有的匹配项。

=REGEXEXTRACT(A2,"[^0-9-]+",1)

重点看第二参数:正则表达式

"[^0-9-]+"

[]中括号:用于指定一个字符集合或区间,可以让正则表达式匹配特定的字符或范围。
^号:在字符集合开头表示取反,即匹配除字符集合以外的其他字符。
- 号:在字符集合中间表示范围,但是如果它在开头或结尾,则只表示普通字符-

该表达式的意思是:取除了 0 到 9 和-之外的字符,取一个或者多个,尽可能多的匹配。


只匹配数字和-之外的字符,是不是相当于按照数字和-,进行拆分了呢~


今天我们再一次学到新的正则表达式:

在 Regexreplace 函数中:
  • 正则表达式,()代表分组,有几个括号就代表几个分组

  • 替换表达式,$n 代表第几个分组

  • 我们可以利用分组灵活的插入字符串

\w 代表,数字字母下划线 [0-9a-zA-Z_]
\W 就是,非数字字母下划线 [^0-9a-zA-Z_]

拆分中,我们可以通过中括号取反的方式进而实现正则拆分:
  • []代表字符集,中括号中开头^代表取反[^..]


那大家也不难想到:
\d 取反 是\D,也就是[^\d]和\D 是一样的。

好了,本文就到这里结束啦~

看到这里,小伙伴是不是觉得,正则也就是这么一回事呢~

后面文章我们会接着继续聊聊更深的正则语法。


如果你想变得更优秀,提升 Excel 水平,增强职场竞争力,

那么一定要加入《秋叶 Excel 3 天集训营》,和 500 强企业培训讲师拉登Dony 一起学习更多高效技巧!

不限年龄!不限岗位!不限基础!都可以学!

课程原价 99 
现在扫码
只需 1 元
还送
100+套精选 Excel 模板
35 个常用函数说明手册

学 Excel,提升办公效率
↓↓↓
↑↑↑
报名后自动弹出班主任微信
记得添加,才能上课



点击下方卡片👇
关注【秋叶 Excel】,发送【6】
领取秋叶 Excel 6 年精选文章合集
↓↓↓