从消费明细里提取数字求和:WPS一行公式搞定,老版本Excel也有土办法

墨云轩
墨云轩 WPS资深用户Lv.3 优质创作者KVPWPS寻令官

Lv.3 优质创作者

大家好,我是墨云轩。边学习,边分享,每天进步一点点。

最近有网友问了这样一道问题:表格里有一列消费明细,像「双喜18,红牛49,真龙50,咖啡14」这样,品名和金额混在一起,怎么把金额提出来求和?

方法一:WPS用户,一行公式搞定

说实话,这个问题以前我也没怎么遇到过。不过如果你用的是新版WPS表格,那真的很简单,一个正则函数就解决了。

在求和单元格输入下面的公式:

=SUM(-REGEXP(A3,"\d+"))

别看它短,拆开来就三步:

第一步,REGEXP(A3,"\d+")。\d+是正则表达式,意思是「一段连续的数字」,它会把A3里的18、49、50、14全部提取出来。

第二步,前面的负号。提取出来的是文本,不能直接求和。前面加一个负号,相当于负负得正,把它变成数值。

第三步,用SUM求和,结果131就出来了。

最后双击填充柄,往下拉,三行数据一次搞定。

方法二:老版本Excel,借道Word中转

但是这位网友用的是Excel 2010,版本比较低,没有REGEXP这类新函数,用其他函数写起来比较麻烦。

那怎么办呢?我的思路是:先把文本清洗成算式,再把算式变成值。

第一步,选中表格,Ctrl+C复制,粘贴到WPS文字(Word)里。

第二步,按Ctrl+H打开查找替换,勾选「使用通配符」,查找「[一-龟],」,替换为空。这样只留下数字和逗号。

第三步,把中文逗号「,」全部替换成加号「+」。文本就变成了「18+49+50+14」这样的算式。

第四步,把算式粘贴回Excel,在旁边单元格输入:

="="&C3

用等号和连字符&拼出「=18+49+50+14」这样的文本算式,复制后右键粘贴为值。

第五步,选中这一列,点「数据」→「分列」,一路点「完成」就行。分列会让Excel重新识别一遍单元格内容,文本算式就直接变成值131了。

两种方法怎么选

方法

适用

特点

REGEXP正则函数

新版WPS表格

一行公式,双击填充,一步到位

Word中转+分列

Excel 2010等老版本

不用新函数,步骤多一些,胜在通用

题外话一:分列这个功能平时不起眼,关键时刻转个格式、算个文本算式,都很顶用。

题外话二:方法不分高低,能解决自己手头问题的,就是好方法。

那么问题来了:在Excel 2010这个老版本里,能不能纯用函数完成这个提取求和呢?欢迎留言分享交流,先谢过各位大佬。

边学习,边分享,每天进步一点点。我是墨云轩,我们下期见。

河北省
浏览 365
收藏
11
分享
11 +1
5
+1
全部评论 5
 
亂雲飛渡
很好,给墨老师点赞
   广东省
举报
0
1
墨云轩
墨云轩WPS资深用户Lv.3 优质创作者KVPWPS寻令官

Lv.3 优质创作者

🤝
·
举报
0
0
 
临商珑胜
临商珑胜 WPS产品体验官Lv.3 优质创作者

Lv.3 优质创作者

还可以这样写:
举报
1
0
 
临商珑胜
临商珑胜 WPS产品体验官Lv.3 优质创作者

Lv.3 优质创作者

确实是高手!
举报
0
1
墨云轩
墨云轩WPS资深用户Lv.3 优质创作者KVPWPS寻令官

Lv.3 优质创作者

·
举报
0
0