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



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这个老版本里,能不能纯用函数完成这个提取求和呢?欢迎留言分享交流,先谢过各位大佬。
边学习,边分享,每天进步一点点。我是墨云轩,我们下期见。
Lv.3 优质创作者
Lv.3 优质创作者
Lv.3 优质创作者
Lv.3 优质创作者