327人参与 • 2024-05-26 • WPS
本文作者:卫星酱
本文编辑:竺兰
锵锵~ 大家好哇!我是没事儿就整点函数分享的卫星酱~
今天卫某要介绍一个超级好用的 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,问题就迎刃而解了!
regexp,是 wps office 中的一个文本处理函数(wps 16894 版本中才有,目前在内测阶段)。
它还有许多的子函数,比如:
regexpextract:提取匹配正则表达式的子字符串。
regexpmatch:判断文本是否匹配正则表达式。
regexpreplace:替换匹配正则表达式的文本。
如果有同学对此感兴趣,可以在评论区中留言,说不定下一次就介绍它们啦~
这里我们还是回归正题 ——
regexp 函数允许用户利用正则表达式来匹配、提取、替换或处理文本数据;
比如,「\d+」就是一个正则表达式,它表示一个或多个数字字符的序列。
如果用「\d+」去匹配文本,它会匹配文本中所有连续的数字。
这就是为什么咱们今天的数据万分需要它:
只需要输入一个短到不可思议的公式:
=regexp(b3"\d+")
就能搞定文本内提取多项数值的复杂问题!
可惜的是,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:
好了,今天给大家带来的是 wps 新函数 regexp,提取文本中所有连续数值的用法,还给出了 excel 中的替代选项哦~
当然,如果你紧跟潮流,善用 ai,那就更简单了~
只需把图片丢给 ai,并命令「提取其中所有数值,并以纯数字形式返回给我」,直接出结果!
不过,如果数据比较敏感,担心隐私泄露问题,还是用函数自己处理比较好~
您想发表意见!!点此发布评论
版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。
发表评论