Excel数字秒变大写金额:告别手动输入,这几个函数公式你必须掌握!
说实话,谁还没被财务报表上的数字折磨过呢?尤其是那些长长的金额,不仅容易看错,手写大写金额更是要命,一不小心就出错。想想每个月对着密密麻麻的表格,头皮都要炸了!
自从我学会了Excel里几个能把数字直接变成大写金额的函数,简直就像打开了新世界的大门!效率蹭蹭往上涨,再也不怕金额出错被老板骂了。今天就来跟大家分享一下,这些救命稻草般的函数公式,保证让你告别手动输入的噩梦。
首先,最简单粗暴的,当然是用自定义函数。这需要一点VBA基础,但别怕,真的一点点就够了。打开VBA编辑器(Alt + F11),插入一个模块,然后把下面这段代码复制进去:
vba
Function DX(Num As Double) As String
Dim MyStr As String, Unit As String, MyNum As String
Dim i As Integer
Unit = "仟佰拾亿仟佰拾万仟佰拾圆角分"
MyNum = "零壹贰叁肆伍陆柒捌玖"
Num = Round(Abs(Num), 2)
MyStr = Format(Num, "000000000000.00")
For i = 1 To Len(MyStr) - 3
DX = DX & Mid(MyNum, Val(Mid(MyStr, i, 1)) + 1, 1) & Mid(Unit, i, 1)
Next i
DX = DX & "圆"
DX = DX & Mid(MyNum, Val(Mid(MyStr, 13, 1)) + 1, 1) & "角"
DX = DX & Mid(MyNum, Val(Mid(MyStr, 14, 1)) + 1, 1) & "分"
DX = Replace(DX, "零角", "零")
DX = Replace(DX, "零分", "")
DX = Replace(DX, "零圆", "圆")
DX = Replace(DX, "零万", "万")
DX = Replace(DX, "零亿", "亿")
DX = Replace(DX, "零仟", "零")
DX = Replace(DX, "零佰", "零")
DX = Replace(DX, "零拾", "零")
Do While InStr(DX, "零零") > 0
DX = Replace(DX, "零零", "零")
Loop
If Right(DX, 1) = "零" Then DX = Left(DX, Len(DX) - 1)
If Left(DX, 1) = "圆" Then DX = Mid(DX, 2, Len(DX) - 1)
DX = IIf(Num < 0, "负" & DX, DX)
If Num = 0 Then DX = "零圆"
End Function
代码复制进去之后,关掉VBA编辑器,回到Excel表格。现在,你就可以在单元格里输入 =DX(A1)
(A1是你需要转换的数字所在的单元格),回车,奇迹就发生了!数字瞬间变成了大写金额!是不是超级方便?
当然,如果你不想碰代码,或者觉得VBA太麻烦,还有另一种方法:用公式组合。这个稍微复杂一点,需要用到 TEXT
、MID
、CHOOSE
等函数的组合,但也很实用。
举个例子,假设你的数字在A1单元格,可以试试这个公式:
excel
=TEXT(INT(A1),"[DBNum2]G/通用格式")&"元"&IF(INT(A1*10)-INT(A1)*10=0,"整",TEXT(INT(A1*10)-INT(A1)*10,"[DBNum2]G/通用格式")&"角")&IF(INT(A1*100)-INT(A1*10)*10=0,"整",TEXT(INT(A1*100)-INT(A1*10)*10,"[DBNum2]G/通用格式")&"分")
这个公式虽然长,但原理很简单:把整数部分、角、分分别提取出来,然后用 TEXT
函数转换成大写,再拼接在一起。
不得不说,Excel真的是个宝藏,只要你肯挖掘,总能找到解决问题的办法。有了这些函数公式,以后再也不用为财务报表上的大写金额发愁啦!赶紧试试吧,解放你的双手,提高你的效率!
发表回复