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

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

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列,就可以了。经过这几步操作,带单位的文本金额就全部转成了真正的数字,可以直接求和、平均、做数据分析了。

小结

这个方法的本质是:

  1. 用 SUBSTITUTE(SUBSTITUTES) 把单位替换成乘法运算

  1. 用 EVALUATE 把文本算式算出来

  1. 用 IFERROR 处理空值

思路不难,关键是理解"文本转算式再计算"这个逻辑。

当然,方法不止一种。如果您有更好的做法,欢迎留言交流,让我也学习学习!


我是墨云轩,热衷分享办公小技巧,边学习,边分享,每天进步一点点!感谢您的阅读!

Excel、WPS表格函数大全
@墨云轩
河北省
浏览 259
收藏
12
分享
12 +1
7
+1
全部评论 7
 
临商珑胜
临商珑胜 Lv.1 新人创作者

Lv.1 新人创作者

我喜欢另一种方式:导入数据后清除单元格格式,利用REGEXP函数进行操作:
   山东省
举报
0
2
墨云轩
墨云轩WPS资深用户Lv.3 优质创作者KVPWPS寻令官

Lv.3 优质创作者

· 河北省
举报
0
0
 
HC.旋
HC.旋 WPS资深用户Lv.3 优质创作者WPS寻令官

Lv.3 优质创作者

点赞学习
   福建省
举报
0
1
墨云轩
墨云轩WPS资深用户Lv.3 优质创作者KVPWPS寻令官

Lv.3 优质创作者

· 河北省
举报
0
0
 
亂雲飛渡
点赞学习
   广东省
举报
0
1
墨云轩
墨云轩WPS资深用户Lv.3 优质创作者KVPWPS寻令官

Lv.3 优质创作者

· 河北省
举报
0
0