本文作者：卫星酱
本文编辑：竺兰
锵锵~ 大家好哇！我是没事儿就整点函数分享的卫星酱~
今天卫某要介绍一个超级好用的 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，问题就迎刃而解了！
1、函数介绍
REGEXP，是 WPS Office 中的一个文本处理函数（WPS 16894 版本中才有，目前在内测阶段）。
它还有许多的子函数，比如：
REGEXPEXTRACT：提取匹配正则表达式的子字符串。
REGEXPMATCH：判断文本是否匹配正则表达式。
REGEXPREPLACE：替换匹配正则表达式的文本。
如果有同学对此感兴趣，可以在评论区中留言，说不定下一次就介绍它们啦~
这里我们还是回归正题 ——
REGEXP 函数允许用户利用正则表达式来匹配、提取、替换或处理文本数据；
比如，「\d+」就是一个正则表达式，它表示一个或多个数字字符的序列。
如果用「\d+」去匹配文本，它会匹配文本中所有连续的数字。
这就是为什么咱们今天的数据万分需要它：
2、案例实操
只需要输入一个短到不可思议的公式：
=REGEXP(B3"\d+")
就能搞定文本内提取多项数值的复杂问题！
3、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：
4、写在最后
好了，今天给大家带来的是 WPS 新函数 REGEXP，提取文本中所有连续数值的用法，还给出了 Excel 中的替代选项哦~
当然，如果你紧跟潮流，善用 AI，那就更简单了~
只需把图片丢给 AI，并命令「提取其中所有数值，并以纯数字形式返回给我」，直接出结果！
不过，如果数据比较敏感，担心隐私泄露问题，还是用函数自己处理比较好~
本文来自微信公众号：秋叶 Excel （ID：excel100），作者：卫星酱
广告声明：文内含有的对外跳转链接（包括不限于超链接、二维码、口令等形式），用于传递更多信息，节省甄选时间，结果仅供参考，IT之家所有文章均包含本声明。