Excel中金额小写转大写excel小写金额自动转换大写
對(duì)于做財(cái)務(wù)的同學(xué)應(yīng)該經(jīng)常會(huì)遇到要求把金額用大寫(xiě)的方式展示吧,如下圖這樣。
今天小編就和大家分享如何把數(shù)字金額轉(zhuǎn)換為大寫(xiě)金額。
1、單元格格式
Excel本身自帶了中文大寫(xiě)數(shù)字格式,但是實(shí)際使用不僅容易,下面我們一起來(lái)看看吧。
不知道大家還記不記得在單元格格式中數(shù)字類(lèi)別類(lèi)別下有個(gè)特殊格式,這個(gè)格式下就有中文大寫(xiě)數(shù)字格式。
我們直接用開(kāi)頭的數(shù)據(jù)來(lái)試試,看看效果,也好做個(gè)對(duì)比。
看到結(jié)果應(yīng)該知道小編為什么說(shuō)不盡如意了吧。這種方式有幾個(gè)問(wèn)題:①?zèng)]有元角分單位;②有小數(shù)點(diǎn);③沒(méi)有包含整字。
2、NUMBERSTRING函數(shù)
NUMBERSTRING函數(shù)是Excel中的一個(gè)隱藏函數(shù),就是在函數(shù)列表里查不到的,我們也就不去研究Excel出于什么原因沒(méi)有公開(kāi)這個(gè)函數(shù)了。
函數(shù)格式:「=NUMBERSTRING(VALUE,TYPE)」;
函數(shù)作用;處理小寫(xiě)數(shù)字轉(zhuǎn)大寫(xiě)數(shù)字;
說(shuō)明:VALUE表示要轉(zhuǎn)換的數(shù)字;TYPE有三種類(lèi)型可選為「1、2、3」,每種類(lèi)型對(duì)應(yīng)一種展示大寫(xiě)方式。
注意點(diǎn):這個(gè)函數(shù)只支持正整數(shù),不支持小數(shù)。
我們來(lái)看看三種類(lèi)型的效果對(duì)比:
從結(jié)果上來(lái)看類(lèi)型參數(shù)為2的是我們需要的,并且我們發(fā)現(xiàn)也是沒(méi)有單位沒(méi)有整字的,而且函數(shù)不能處理小數(shù)。我們可以看下效果:
而且我們還發(fā)現(xiàn)如果直接使用小數(shù),結(jié)果會(huì)被四舍五入。
不過(guò)這些都不是問(wèn)題,因?yàn)槭呛瘮?shù)所有操作空間就很多,我們可以進(jìn)行加工得到我們想要的。
我們先來(lái)解決四舍五入的問(wèn)題。今天我們來(lái)學(xué)習(xí)一個(gè)新函數(shù)TRUNC。這個(gè)函數(shù)很簡(jiǎn)單,主要作用是把數(shù)字的小數(shù)部分截掉,保留整數(shù)部分,語(yǔ)法:TRUNC(數(shù)字)。
然后我們來(lái)解決小數(shù)部分。既然NUMBERSTRING函數(shù)只能處理整數(shù),那么如果我們把小數(shù)部分轉(zhuǎn)為整數(shù)不就行了嗎?而且我們只需要處理角和分也就是兩個(gè)字。
小編第一個(gè)想到的是截取函數(shù),然后定位到角分,方案是可以的,就是公式寫(xiě)出來(lái)很長(zhǎng)很繁瑣。
如下圖,如一個(gè)兩位小數(shù),我們首先把這個(gè)兩位小數(shù)乘以10,然后對(duì)結(jié)果截取整數(shù)部分得到金額1,那么十分位就變成個(gè)位了;然后對(duì)這個(gè)兩位小數(shù)直接截取整數(shù)部分再乘以10得到金額2,并且金額2的個(gè)位一定是0,而且金額1和金額2位數(shù)也一定相等,只要把金額1減金額2就可得到角了。
同理「=TRUNC(A5*100)-TRUNC(A5*10)*10」可得分。
現(xiàn)在四舍五入,角,分問(wèn)題都解決了,我們把公式拼接一下就可以了。最終得到公式:「=NUMBERSTRING(TRUNC(B5),2)&"元"&NUMBERSTRING(TRUNC(B5*10)-TRUNC(B5)*10,2)&"角"&NUMBERSTRING(TRUNC(B5*100)-TRUNC(B5*10)*10,2)&"分"」,我們看看效果:
看到結(jié)果還是不是很理想,還是有很多問(wèn)題,整數(shù)結(jié)尾應(yīng)該是"元整",角為有值分位沒(méi)值的結(jié)尾應(yīng)該是"角整",分位有值的且角位為0的應(yīng)該是"零玖分"這樣,后面不應(yīng)該有"零分"。當(dāng)然這些問(wèn)題也可通過(guò)IF函數(shù)在處理,但是這就會(huì)導(dǎo)致公式很長(zhǎng)。
小編發(fā)現(xiàn)主要問(wèn)題就是在小數(shù)部分的處理上,因此我們可以選擇把小數(shù)部分復(fù)雜的處理交給VBA處理,代碼如下:
'獲取小數(shù)部分大寫(xiě)金額Function GetDecimal(cell) Dim arrResult() As String '截取小數(shù)點(diǎn) arrResult = VBA.Split(cell, ".") Dim iArr As Integer iArr = UBound(arrResult) '沒(méi)有小數(shù)部分直接返回"元整" If iArr = 0 Then GetDecimal = GetDecimal & "元整" '有小數(shù)部分且是格式正確 ElseIf iArr = 1 Then Dim strSmall As String strSmall = arrResult(1) Dim iSmall As Integer Dim strJiao, strFen As String '獲取小數(shù)位數(shù) iSmall = Len(strSmall) '一位小數(shù)則為分 If iSmall = 1 Then strJiao = getUpperCase(strSmall) '兩位小數(shù)則為分角 ElseIf iSmall = 2 Then strJiao = getUpperCase(Left(strSmall, 1)) strFen = getUpperCase(Right(strSmall, 1)) '大于兩位小數(shù)只取前兩位分角 Else strJiao = getUpperCase(Left(strSmall, 1)) strFen = getUpperCase(Mid(strSmall, 2, 1)) End If '如 1.00 為 壹元整 If (strFen = "" Or strFen = "零") And strJiao = "零" Then GetDecimal = GetDecimal & "元整" '如 1.10 為 壹元壹角整 ElseIf (strFen = "" Or strFen = "零") And strJiao <> "零" Then GetDecimal = GetDecimal & "元" & strJiao & "角整" '如 1.01 為 壹元零壹分 ElseIf strFen <> "" And strFen <> "零" And strJiao = "零" Then GetDecimal = GetDecimal & "元" & "零" & strFen & "分" '如 1.11 為 壹元壹角壹分 ElseIf strFen <> "" And strFen <> "零" And strJiao <> "零" Then GetDecimal = GetDecimal & "元" & strJiao & "角" & strFen & "分" End If '有小數(shù)部分但是格式不正確 Else GetDecimal = GetDecimal & "數(shù)據(jù)格式有問(wèn)題" End IfEnd Function'數(shù)字轉(zhuǎn)大寫(xiě)Private Function getUpperCase(str) As String Dim strWord As String Select Case str Case "0": strWord = "零" Case "1": strWord = "壹" Case "2": strWord = "貳" Case "3": strWord = "叁" Case "4": strWord = "肆" Case "5": strWord = "伍" Case "6": strWord = "陸" Case "7": strWord = "柒" Case "8": strWord = "捌" Case "9": strWord = "玖" Case Else: strWord = str End Select getUpperCase = strWordEnd Function
代碼中也有解釋?zhuān)【幾⒔鈶?yīng)該還算清楚,不清楚的可以和小編一起探討。
最后把整數(shù)部分和小數(shù)部分結(jié)合起來(lái),使用公式:「=NUMBERSTRING(TRUNC(B5),2)&GetDecimal(B5)」即可得到最終效果。
總結(jié)
以上是生活随笔為你收集整理的Excel中金额小写转大写excel小写金额自动转换大写的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 一款可以卷起来的RGB发光鼠标垫发光鼠标
- 下一篇: 电脑拔了网线还能被窃密和控制吗电脑拔了网