Excel这个函数太牛了,简直就是“人狠话不多”,好用到爆!

醉香说职场 2025-03-20 02:57:30

我是【桃大喵学习记】,欢迎大家关注哟~,每天为你分享职场办公软件使用技巧干货!

——首发于微信号:桃大喵学习记

今天跟大家介绍的是WPS中的一个新神器——REGEXP函数。它就像一个文本侦探,能基于正则表达式,对复杂的文本信息进行匹配提取和替换。今天就跟大家分享REGEXP函数常用的几个场景,公式可以直接套用,简直就是“人狠话不多”,好用到爆!

REGEXP函数介绍

功能:基于正则表达式,对复杂文本进行匹配、提取和替换。

语法:=REGEXP(原始字符串,正则表达式,[匹配模式],[替换内容])

第1参数:【原始字符串】,必填项,就是要用正则表达式匹配的文本;

第2参数:【正则表达式】,必填项,要匹配文本的正则表达式(字符串);

第3参数:【匹配模式】,可选项,0或忽略表示提取,1表示判断是否包含,2表示替换;

第4参数:【替换内容】,可选项,仅在匹配模式为2时有效,用来替换匹配的内容。

场景一:从无规律的文本数据中提取数字、字母、汉字

从无规律的文本数据中提取数字、字母、汉字,是我们在日常工作中最常用到的,今天就先重点介绍一下。

1、提取数字

①提取所有数字

公式:=REGEXP(A2,"[0-9.]+")

解读:

“[0-9.]+”表数字及含小数点的数字。

②提取第一串数字

公式:=TAKE(REGEXP(A2,{"[0-9.]+",""}),,1)

解读:

REGEXP函数有个特点,就是当第二参数使用常量数组时,它只给出了每种情况的第一个值。所谓常量数组就是用大括号括起来,这样就可以获取第一个数字了。

我们在常量数组中第一个规则是"[0-9.]+",会取出第一个数字,第二个是""空,当然也可以改成其它规则。这样会获取两个数据,然后再使用TAKE按行获取第一列数据即可。

2、提取字母

①提取所有字母

公式:=REGEXP(A2,"[A-z]+")

解读:

[A-z]+“表示所有英文字符。

②提取第一串字母

公式:=TAKE(REGEXP(A2,{"[A-z]+",""}),,1)

解读:

原理跟提取第一串数字一样。

③提取字母后用指定字符连接到一起

公式:=TEXTJOIN("+",TRUE,REGEXP(A2,"[A-z]+"))

解读:

使用TEXTJOIN函数按字符"+"把提取的字母连接到一起。

3、提取汉字

①提取所有汉字

公式:=REGEXP(A2,"[一-龟]+")

解读:

“[一-龟]+“表示所有中文字符。

②提取第一串汉字

公式:=TAKE(REGEXP(A2,{"[一-龟]+",""}),,1)

解读:

原理跟提取第一串数字一样。

③把提取的汉字连接到一起

公式:=CONCAT(REGEXP(A2,"[一-龟]+"))

场景二:手机号、身份证号

1、提取手机号

公式:

=REGEXP(A2,"(?<=^|\D)1[3-9]\d{9}(?=\D|$)")

解读:

上面正则表达式是判断一个字符串中是否符合中国手机号的格式,而且确保手机号前后不是数字。这个表达式分为三部分:

①(?<=^|\D):这是一个正向预查,表示手机号前必须是字符串的开始位置或者是非数字字符。

②1[3-9]\d{9}:这是核心部分,表示手机号必须以1开头,第二位是3到9之间的数字,然后是任意9个数字。

③(?=\D|$):这也是一个正向预查,表示手机号后必须是字符串的结束位置或者是非数字字符。

2、提取身份证号

公式:

=REGEXP(A2,"\d{17}[\dX]|\d{15}")

解读:

正则表达式含义

①\b:表示单词边界,确保匹配的是完整的身份证号。

②\d{17}:匹配 17 位数字。

③[\dXx]:匹配第 18 位,可以是数字或字母 X(大小写均可)。

④\b:再次确保匹配的是完整的身份证号。

场景三:按分隔符号拆分内容

1、按分隔符横杆"-"拆分数据

公式:=REGEXP(A1,"[^-]+")

解读:

公式中正则表达式中的^代表非,^-代表不是横杆的内容,[^-]+不是横杆的连续内容。

2、按换行符拆分数据

公式:=REGEXP(A1,"[^\n]+")

解读:

公式中正则表达式中的\n代表换行符,^\n代表不是换行符的内容,[^-]+不是换行符的连续内容。

3、按多个分隔符拆分数据

公式:=REGEXP(A1,"[^-/]+")

解读:

公式中正则表达式中的^代表非,^-/代表不是横杆“-”和不是斜杠“/”的内容,[^-/]+不是横杆和斜杠的连续内容。

场景四:对拆分后的数值进行求和

公式:=SUM(--REGEXP(A2,"[0-9.]+"))

解读:

用REGEXP函数提取后的数字其实是文本格式,然后再用双减号“--”,也就是减负运算转换成数值形式再进行求和运算。

场景五:身份证敏感信息进行脱敏处理

如下图所示,身份证号中间8位换成*号

公式:

=REGEXP(B2,"(\d{6})\d{8}(\w{4})",2,"\1****\2")

解读:

①正则表达式(\d{6})\d{8}(\w{4}):表示将18位身份证分为前6位、中间8位、后4位。

前6位(\d{6})作为分组1;后4位(\w{4})作为分组2。

②参数3:2表示替换所有匹配项

③参数4:\1****\2:表示保留首位6位和尾部4位,中间替换为****

当然的使用场景只是REGEXP函数功能的冰山一角,关于正则表达式的用法简直就像汪洋大海,我们只要学会常用的方法即可。上面的实例大家可以直接套用公式,不必一定记住正则表达式怎么书写。收藏好教程,需要使用时直接套用即可。

以上就是【桃大喵学习记】今天的干货分享~觉得内容对你有所帮助,别忘了动动手指点个赞哦~。大家有什么问题欢迎关注留言,期待与你的每一次互动,让我们共同成长!

0 阅读:0
醉香说职场

醉香说职场

职场啥都得懂