表格合计金额自动转大写:告别手动输入,Excel自动搞定,省时又精准!
哎,说起表格里数字转大写,我就想起以前刚工作那会儿,天天对着一堆数字头昏脑胀,还得小心翼翼地手动输入大写金额。稍微一个不留神,零头错了,整个报表就得重来。那个滋味,真不好受!
相信不少财务、行政的小伙伴都深有同感吧?明明现在都什么年代了,还手动一个个敲,效率简直低到尘埃里。更可怕的是,手写错误率居高不下,报销凭证、合同金额,但凡出错,那可就不是闹着玩的。
别担心!今天我就来分享一个超实用的小技巧,让你彻底告别手动输入大写金额的噩梦,直接在Excel里实现表格合计数字自动转大写!而且方法简单到爆,小学生都能学会!
先来说说为什么需要自动转换。除了提高效率、减少错误之外,还有一个很重要的原因,就是规范化。不同的财务系统、不同的银行,对大写金额的格式要求可能都不一样。用Excel自动转换,就可以保证格式统一,避免不必要的麻烦。
OK,废话不多说,直接上干货!
方法一:利用Excel内置函数(简单粗暴,适用性广)
这个方法的核心是利用Excel的NUMBERSTRING
函数和一些文本连接符。NUMBERSTRING
函数可以将数字转换为中文小写,然后我们再通过一系列的替换,将其转换为大写。
具体步骤如下:
- 在Excel表格中,找到你的合计金额单元格。 假设这个单元格是A1。
- 在旁边找一个空单元格,输入以下公式:
excel
=TEXT(INT(A1),"[DBNum2]G/通用格式元")&IF(INT(A1)=A1,"整",TEXT(MID(A1,FIND(".",A1)+1,1),"[DBNum2]G/通用格式角")&TEXT(MID(A1,FIND(".",A1)+2,1),"[DBNum2]G/通用格式分")&"整")
公式看着长,但其实思路很简单:先将整数部分转换为大写,加上“元”;然后判断是否有小数,如果有,则分别将角和分转换为大写,加上“角”和“分”,最后加上“整”。
这个公式有一个小缺点,就是对于超过亿的数字,显示会有问题,需要进行一些修改。但对于日常使用,已经足够了。
方法二:自定义函数(进阶玩法,功能更强大)
如果你觉得上面的公式太长,或者需要更高级的功能,比如支持自定义金额单位、处理负数等,那么可以考虑使用自定义函数。
- 打开Excel,按下
Alt + F11
,进入VBA编辑器。 - 在VBA编辑器中,插入一个模块(
插入
->模块
)。 - 在模块中,输入以下代码:
“`vba
Function NumToChinese(Num As Double) As String
Dim MyStr As String, Yuan As String, Jiao As String, Fen As String
Dim I As Integer, Temp As String
Yuan = Int(Abs(Num))
Jiao = Int((Abs(Num) * 10) Mod 10)
Fen = Int((Abs(Num) * 100) Mod 10)
Dim cnum(9) As String
cnum(0) = “零”: cnum(1) = “壹”: cnum(2) = “贰”: cnum(3) = “叁”
cnum(4) = “肆”: cnum(5) = “伍”: cnum(6) = “陆”: cnum(7) = “柒”
cnum(8) = “捌”: cnum(9) = “玖”
Dim unit(4) As String
unit(0) = “”: unit(1) = “拾”: unit(2) = “佰”: unit(3) = “仟”
MyStr = ""
Temp = StrReverse(Yuan) '反转字符串,方便处理
For I = 1 To Len(Temp)
Dim Digit As Integer
Digit = Mid(Temp, I, 1)
If Digit <> 0 Then
MyStr = cnum(Digit) & unit(I - 1) & MyStr
Else
If Mid(MyStr, 1, 1) <> "零" And MyStr <> "" Then
MyStr = "零" & MyStr
End If
End If
Next I
' 处理单位
If Yuan > 0 Then
If Yuan < 10000 Then
MyStr = MyStr & "元"
ElseIf Yuan < 100000000 Then
MyStr = Replace(MyStr, "元", "万", , 1) & "元"
Else
MyStr = Replace(MyStr, "元", "亿", , 1) & "元"
End If
End If
' 处理角分
If Jiao > 0 Then MyStr = MyStr & cnum(Jiao) & "角"
If Fen > 0 Then MyStr = MyStr & cnum(Fen) & "分"
If Jiao = 0 And Fen = 0 Then MyStr = MyStr & "整"
' 清理连续的零
Do While InStr(MyStr, "零零") > 0
MyStr = Replace(MyStr, "零零", "零")
Loop
' 避免以零结尾
If Right(MyStr, 1) = "零" And Len(MyStr) > 1 Then MyStr = Left(MyStr, Len(MyStr) - 1)
NumToChinese = MyStr
End Function
“`
- 关闭VBA编辑器,回到Excel表格。
- 在你的目标单元格中,输入以下公式:
excel
=NumToChinese(A1)
其中A1是你的合计金额单元格。
这个自定义函数更加灵活,可以根据你的需求进行修改和扩展。
好了,以上就是关于Excel表格合计数字自动转大写的两种方法。希望能帮助你摆脱手动输入的烦恼,提高工作效率!以后再也不用担心大写金额出错啦!赶紧试试吧!
发表回复