将带"元""万""万元"的金额,转成真正的数字



Lv.3 优质创作者
大家好,我是墨云轩。
最近有网友问我一个问题:表格里的金额数据,都带着"元""万""万元"这样的单位,怎么才能转成真正的数字,方便计算?
相信不少朋友也遇到过类似情况。今天就分享一下我的做法。
问题场景
先看数据,大概是这样的:
这些看起来是数字,实际上是文本,没法直接求和计算。
解题思路
我的思路很简单:
第一步,把文本替换成算式。 怎么替换呢?
将"元"替换成"*1"
将"万"替换成"*10000"
将"万元"替换成"*10000"
替换之后,原来的"1200元"就变成了"1200*1","3万"就变成了"3*10000"。
第二步,计算这个文本算式。 用 EVALUATE 函数就行。
具体操作
第1步:替换生成文本算式
在 B2 单元格输入公式:=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A2,"万元","*10000"),"万","*10000"),"元","*1")
这里用了三层 SUBSTITUTE 嵌套。要注意顺序——先把"万元"替换,再替换"万",这样"万元"里的"万"就不会被重复替换了。如果用的WPS,也可以直接用SUBSTITUTES函数直接批量替换
公式:=SUBSTITUTES(A2,{" 万元";"万";"元"},{"*10000";"*10000";"*1"})
然后,拖拽填充,得到这样的结果:
第2步:计算算式结果
在 C2 单元格输入公式:
=EVALUATE(B2)
EVALUATE 是 WPS 专门用来计算文本形式的算式。在Excel中这个函数需要自定义。拖拽填充,真正的数字就出来了。
第3步:处理空单元格
如果原数据有空单元格,EVALUATE 会返回错误值。可以用 IFERROR 处理一下:
=IFERROR(EVALUATE(B2),"")
这样空单元格就显示为空,不会出现难看的错误值了。
第4步:去掉辅助列
如果不想保留 B 列的辅助列,可以这样做:
将B2替换成它对应的函数,公式如下:
=IFERROR(EVALUATE(=SUBSTITUTES(A2,{" 万元";"万";"元"},{"*10000";"*10000";"*1"})),"")
这样删除B列,就可以了。经过这几步操作,带单位的文本金额就全部转成了真正的数字,可以直接求和、平均、做数据分析了。
小结
这个方法的本质是:
用 SUBSTITUTE(SUBSTITUTES) 把单位替换成乘法运算
用 EVALUATE 把文本算式算出来
用 IFERROR 处理空值
思路不难,关键是理解"文本转算式再计算"这个逻辑。
当然,方法不止一种。如果您有更好的做法,欢迎留言交流,让我也学习学习!
我是墨云轩,热衷分享办公小技巧,边学习,边分享,每天进步一点点!感谢您的阅读!
Lv.1 新人创作者
Lv.3 优质创作者
Lv.3 优质创作者
Lv.3 优质创作者
Lv.3 优质创作者