excel中金额转换成大写怎么显示元角分

Excel金额大写难题?教你一招搞定元角分显示!

嗨,大家好,我是职场摸鱼小能手李小花。最近财务部的姐妹儿又开始哀嚎了,为啥?还不是因为Excel里金额转换成大写,那点儿破事儿!尤其是涉及到元角分,格式不对,领导直接甩脸色,想想都头大。别担心,今天我就来拯救你们了!

话说我刚进公司那会儿,也遇到过同样的问题。每次填报销单,数字倒是填得挺溜,一到大写金额就抓瞎。上网搜了一堆教程,要么是公式太复杂,看得我眼花缭乱,要么就是只能显示整数,角分直接被忽略,简直让人崩溃。

后来,经过我无数次尝试(其实是偷偷请教了隔壁老王,哈哈),终于找到了一个简单又实用的方法,保证让你在领导面前扬眉吐气!

方法一:利用Excel自带的格式设置

这个方法最简单粗暴,也最常用,但也有局限性。

  1. 首先,选中你要转换成大写的金额单元格。
  2. 右键单击,选择“设置单元格格式”。
  3. 在弹出的窗口中,选择“数字”选项卡,然后在“特殊”类别里找到“中文大写数字”。
  4. 点击“确定”就OK啦!

但是!重点来了,这种方法只能将整数部分转换成大写,对于角分是无能为力。所以,如果你只需要转换整数金额,这个方法绝对够用。

方法二:自定义函数公式大法!

想让Excel乖乖听话,显示完整的元角分大写金额?那就得祭出我们的终极武器——自定义函数公式!

别害怕,听起来很吓人,其实操作起来也没那么难。

  1. 打开Excel,按下 Alt + F11,打开VBA编辑器。
  2. 在VBA编辑器中,点击“插入” -> “模块”。
  3. 在模块中,输入以下代码:(这段代码是精华,一定要仔细复制哦!)

“`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
“`

  1. 关闭VBA编辑器。
  2. 回到Excel表格,在你想显示大写金额的单元格中输入公式:=DX(A1)(假设你的金额在A1单元格)。
  3. 搞定!神奇的大写金额就出现啦!

注意:

  • 代码中的 “人民币” 可以根据需要修改成其他币种。
  • 如果你的Excel版本比较老,可能需要调整VBA的安全设置,允许宏的运行。

这个方法虽然稍微复杂一点,但效果绝对杠杠的!无论金额多复杂,都能完美转换成大写,而且元角分一个都不会少。

希望这个小技巧能帮到大家,以后再也不用为Excel金额转换发愁啦!记住,职场生存法则之一就是:掌握一些实用的小技能,关键时刻能派上大用场!祝大家工作顺利,升职加薪!

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注