ARTICLE · 1168074
别再手动抠数字了!Excel这个隐藏功能,在文字里自动提取并求和,1秒搞定

点击蓝字,关注鹏哥


从“张三出差费用高铁700元,食宿费350元,加班费100元”到完成费用的求和,只需一个公式。
在日常工作中,我们经常会遇到这样的数据:单元格中混杂着文字和数字,比如“张三出差费用高铁700元,食宿费350元,加班费100元”,“订单号YT764726635861、金额100.3元”,“双喜18,红牛49,真龙15.8”。现在需要把其中的数值提取出来并求和,数据量非常小的时候还可以手动一个个抠数字。数据量大了以后,例如100行以上再手动一个个抠就不现实了。
以前大家可能会用LEFT、MID、FIND等函数写嵌套公式以实现,但是逻辑复杂还容易出错。现在,正则表达式函数的出现让混合文本中提取数值变得非常简单。本文将介绍如何利用正则表达式函数,从任意混合文本中提取数值并求和。
1、认识正则函数
首先要说明一个关键区别。目前WPS的表格和微软的Excel都支持正则表达式函数,但实现方式略有区别。
WPS表格:REGEXP函数,一个函数实现提取、替换和判断。
Excel:三个独立函数实现不同的功能——REGEXEXTRACT(提取)、REGEXREPLACE(替换)、REGEXTEST(判断)。
此外,WPS的REGEXP默认返回所有匹配项,而Excel的REGEXEXTRACT默认只返回第一个匹配项,需要将第三参数设为1才能返回所有匹配。
下面以WPS中的REGEXP函数为例进行讲解,Excel用户只需把函数名换成REGEXEXTRACT即可,但注意参数设置。
2、一行搞定提取求和
场景1:提取所有数字并求和
假设A列有一组消费明细,如“双喜18,红牛49,真龙50,咖啡14”,想在C列求和。
在B2单元格输入以下公式:
=SUM(--REGEXP(B2,"\d+"))然后双击填充柄向下填充即可。
拆解公式:
第一步:REGEXP(B2,"\d+") —— \d+是正则表达式,\d代表任意数字,+表示一位或多位连续数字。这个部分会把B2单元格中的18、49、50、14全部提取出来,得到一个文本数组{"18","49","50","14"}。
第二步:前面的负号 —— REGEXP函数提取出来的数字是文本格式,不能直接参与四则运算。前面加一个负号,把文本数字转换为负数,两个负号便负负得正,这一步是很多初学者容易忽略的关键环节。
第三步:SUM则是求和函数 —— 对转换后的数值数组进行求和,结果131就出来了。
场景2:小数的提取
如果数据中包含小数,比如“张三128.5,李四200”,需要把正则表达式改为:
=SUM(REGEXP(B3,"[0-9.]+")*1)这里[0-9.]表示匹配0到9的数字或小数点,*1的作用和前面的负号一样,都是将文本数字转为可以计算的数值。
3、精准提取特定数值
提取特定文字前的数字
如果单元格里有多个数字,但只想提取特定位置的值,可以使用零宽断言。例如“ 订单号YT764726635861金额89元 ”,只想要提取“元”前面的消费金额,公式如下:
=SUM(REGEXP(B4,"[0-9.]+(?=元)")/1)(?=元)是正向先行断言,表示匹配的位置后面必须跟着“元”字,但“元”本身不包含在匹配结果中。这样就能精准提取89,而不会把订单编号数字764726635861提取出来。另外,/1的作用和前面的负号和*1一样。
提取特定文字后的数字
类似地,如果要提取“小饼干”后面的数字,公式如下:
=SUM(REGEXP(B7,"(?<=小饼干)\d+")*1)(?<=小饼干)是正向后行断言,表示匹配的数字位置前面必须是“小饼干”文本。
常见正则元字符速查
元字符 | 含义 | 示例 |
\d | 匹配任意数字 | \d+ 匹配连续数字 |
[0-9.] | 匹配数字或小数点 | 适用于含小数的场景 |
+ | 前面的表达式出现1次或多次 | \d+ |
(?=...) | 正向先行断言 | \d+(?=元) |
(?<=...) | 正向后行断言 | (?<=机修)\d+ |
4、总结
正则表达式提取数值并进行运算的步骤:正则提取 → 转数值 → SUM求和。掌握\d+、[0-9.]+这两个模式以及(?=...)、(?<=...)两个断言,就能应对绝大多数混合文本的数值提取场景。
当然,还有其他的一些方式比如:=SUM(--REGEXP(B2,"[\d.]+"))这个通用公式可以解决整数小数的混合数据。
以后再遇到“品名+金额”混合的数据,不用再一个个手动抠数字了再进行运算了——一个公式,一键搞定。
练习素材
往期精彩文章导读


来源:图来自AI、百度和自制
声明:本微信公众号“ 鹏哥学习圈 ”所发表的内容注明来源,版权归原出处所有(无法查证的或未标明著作来源的均来源于网络搜索)。内容的真实性、准确性和合法性由原作者负责。

END
你的

是鹏哥
更新的最大动力!
发财的小手点个赞推荐 或 分享
祝你有钱有闲!
点上方『头像卡片』 关注鹏哥

求点赞

求分享

求推荐
















































































