Excel金额大写难题?教你一招搞定元角分显示!
嗨,大家好,我是职场摸鱼小能手李小花。最近财务部的姐妹儿又开始哀嚎了,为啥?还不是因为Excel里金额转换成大写,那点儿破事儿!尤其是涉及到元角分,格式不对,领导直接甩脸色,想想都头大。别担心,今天我就来拯救你们了!
话说我刚进公司那会儿,也遇到过同样的问题。每次填报销单,数字倒是填得挺溜,一到大写金额就抓瞎。上网搜了一堆教程,要么是公式太复杂,看得我眼花缭乱,要么就是只能显示整数,角分直接被忽略,简直让人崩溃。
后来,经过我无数次尝试(其实是偷偷请教了隔壁老王,哈哈),终于找到了一个简单又实用的方法,保证让你在领导面前扬眉吐气!
方法一:利用Excel自带的格式设置
这个方法最简单粗暴,也最常用,但也有局限性。
- 首先,选中你要转换成大写的金额单元格。
- 右键单击,选择“设置单元格格式”。
- 在弹出的窗口中,选择“数字”选项卡,然后在“特殊”类别里找到“中文大写数字”。
- 点击“确定”就OK啦!
但是!重点来了,这种方法只能将整数部分转换成大写,对于角分是无能为力。所以,如果你只需要转换整数金额,这个方法绝对够用。
方法二:自定义函数公式大法!
想让Excel乖乖听话,显示完整的元角分大写金额?那就得祭出我们的终极武器——自定义函数公式!
别害怕,听起来很吓人,其实操作起来也没那么难。
- 打开Excel,按下
Alt + F11
,打开VBA编辑器。 - 在VBA编辑器中,点击“插入” -> “模块”。
- 在模块中,输入以下代码:(这段代码是精华,一定要仔细复制哦!)
“`vba
Function DX(Num As Double) As String
Dim RMB As String, Minus As String, i As Integer
Dim tmp As String, dot As Integer, strNum As String
Dim Yuan As String, Jiao As String, Fen As String
RMB = "人民币"
Minus = ""
strNum = Trim(Str(Abs(Num)))
If Left(strNum, 1) = "-" Then
Minus = "负"
strNum = Mid(strNum, 2)
End If
dot = InStr(1, strNum, ".")
If dot = 0 Then
Yuan = strNum
Jiao = "0"
Fen = "0"
Else
Yuan = Left(strNum, dot - 1)
Jiao = Mid(strNum, dot + 1, 1)
If Len(Mid(strNum, dot + 1)) > 1 Then
Fen = Mid(strNum, dot + 2, 1)
Else
Fen = "0"
End If
End If
Dim d1 As String, d2 As String, d3 As String
Dim a As String, b As String
Dim c As String
Dim Result As String
a = "零壹贰叁肆伍陆柒捌玖"
b = "万仟佰拾亿仟佰拾万仟佰拾元"
c = "角分"
d1 = ""
d2 = ""
d3 = ""
For i = 1 To Len(Yuan)
d1 = d1 & Mid(a, Val(Mid(Yuan, i, 1)) + 1, 1) & Mid(b, Len(Yuan) - i + 13, 1)
Next i
If Val(Jiao) > 0 Then
d2 = Mid(a, Val(Jiao) + 1, 1) & "角"
End If
If Val(Fen) > 0 Then
d3 = Mid(a, Val(Fen) + 1, 1) & "分"
End If
Result = Minus & RMB & d1 & d2 & d3
'处理连续零
Do While InStr(Result, "零零") > 0
Result = Replace(Result, "零零", "零")
Loop
'处理结尾的零
If Right(Result, 1) = "零" Then
Result = Left(Result, Len(Result) - 1)
End If
'处理单位前的零
If Left(Result, 1) = "零" Then
Result = Mid(Result, 2)
End If
'如果金额为0
If Result = RMB Then
Result = RMB & "零元"
End If
DX = Result
End Function
“`
- 关闭VBA编辑器。
- 回到Excel表格,在你想显示大写金额的单元格中输入公式:
=DX(A1)
(假设你的金额在A1单元格)。 - 搞定!神奇的大写金额就出现啦!
注意:
- 代码中的 “人民币” 可以根据需要修改成其他币种。
- 如果你的Excel版本比较老,可能需要调整VBA的安全设置,允许宏的运行。
这个方法虽然稍微复杂一点,但效果绝对杠杠的!无论金额多复杂,都能完美转换成大写,而且元角分一个都不会少。
希望这个小技巧能帮到大家,以后再也不用为Excel金额转换发愁啦!记住,职场生存法则之一就是:掌握一些实用的小技能,关键时刻能派上大用场!祝大家工作顺利,升职加薪!
发表回复