本文作者:卫星酱本文编辑:竺兰锵锵~大家好哇!我是没事儿就整点函数分享的卫星酱~今天卫某要介绍一个超级好用的WPS 新函数——REGEXP!大家会从文本中提取数值吗?像这样的内容:虽然用的公式比较长:=RIGHT(LEFT(C3,LEN(C3)-1),LEN(LEFT(C3,LEN(C3)-1))*2-LENB(LEFT(C3,LEN(C3)-1)))但本质上是先去除单位:再提取:比较容易理解;何况还有【Ctrl+E】这个大杀器 (Excel 2013、WPS 12.7 及两者以上版本均可使用) ,直接帮我们搞定:但要是碰上这种数据↓↓↓打工人很可能只会上演一场笑容消失术……但只要请出咱们今天的正主——WPS 新函数 REGEXP,问题就迎刃而解了!如果你对新函数感兴趣,希望学习更多函数实际运用,避开让人笑容消失的冤种工作~欢迎你加入秋叶 Excel 3 天集训营!每天学习大概30 分钟,3 天时间,你也有可能成为 Excel 高手!秋叶 Excel 3 天集训营原价 99 元现在免费报名!报名即送【81 个函数手册】赶紧扫码预约吧!函数介绍REGEXP,是 WPS Office 中的一个文本处理函数 (WPS 16894 版本中才有,目前在内测阶段) 。它还有许多的子函数,比如:REGEXPEXTRACT:提取匹配正则表达式的子字符串。 REGEXPMATCH:判断文本是否匹配正则表达式。 REGEXPREPLACE:替换匹配正则表达式的文本。如果有同学对此感兴趣,可以在评论区中留言,说不定下一次就介绍它们啦~这里我们还是回归正题——REGEXP 函数允许用户利用正则表达式来匹配、提取、替换或处理文本数据;比如,「\d+」就是一个正则表达式,它表示一个或多个数字字符的序列。如果用「\d+」去匹配文本,它会匹配文本中所有连续的数字。这就是为什么咱们今天的数据万分需要它:案例实操只需要输入一个短到不可思议的公式:=REGEXP(B3,"\d+")就能搞定文本内提取多项数值的复杂问题!Excel 做法可惜的是,Excel 中并没有这个好用的函数但要实现类似的功能,也不是没有办法~按【Alt + F11】打开 VBA 编辑器,右击 VBAProject,选择【插入】- 【模块】。添加以下代码:Function RegExpMatch(pattern As String, text As String) As String
Dim regEx As Object
Set regEx = CreateObject("VBScript.RegExp")
regEx.Global = True
regEx.MultiLine = True
regEx.IgnoreCase = False
regEx.Pattern = pattern
Dim matches As Object
Set matches = regEx.Execute(text)
Dim results As String
results = ""
If Not matches Is Nothing And matches.Count > 0 Then
Dim i As Integer
For i = 0 To matches.Count - 1
If matches.Item(i).Value <> "" Then
results = results & matches.Item(i).Value & ", "
End If
Next i
' 移除最后一个多余的逗号和空格
If Right(results, 2) = ", " Then
results = Left(results, Len(results) - 2)
End If
End If
RegExpMatch = results
End Function然后我们就能使用自定义函数RegExpMatch:对了,想要自定义函数 RegExpMatch 源文件的小伙伴,点击下方卡片,在后台回复关键词:【代码】,即可获取~好了,今天给大家带来的是 WPS 新函数 REGEXP,提取文本中所有连续数值的用法,还给出了 Excel 中的替代选项哦~当然,如果你紧跟潮流,善用 AI,那就更简单了~只需把图片丢给 AI,并命令「提取其中所有数值,并以纯数字形式返回给我」,直接出结果!不过,如果数据比较敏感,担心隐私泄露问题,还是用函数自己处理比较好~要是你想学习更多函数知识,掌握新函数,下班更快速!那我推荐你参加秋叶 Excel 3 天集训营,有大神带你案例实操,解决职场真实问题~秋叶 Excel 3 天集训营课程原价 99 元但只要你是秋叶 Excel 的读者就能限时 0 元秒杀!!优惠名额有限,先到先得!现在报名还能免费领《81 个函数手册》!