首页
/
每日頭條
/
職場
/
excel金額小寫轉大寫公式詳解
excel金額小寫轉大寫公式詳解
更新时间:2026-06-05 07:56:32

對于做财務的同學應該經常會遇到要求把金額用大寫的方式展示吧,如下圖這樣。

excel金額小寫轉大寫公式詳解(Excel中金額小寫轉大寫)1

今天小編就和大家分享如何把數字金額轉換為大寫金額。

1、單元格格式

Excel本身自帶了中文大寫數字格式,但是實際使用不僅容易,下面我們一起來看看吧。

不知道大家還記不記得在單元格格式中數字類别類别下有個特殊格式,這個格式下就有中文大寫數字格式。

excel金額小寫轉大寫公式詳解(Excel中金額小寫轉大寫)2

我們直接用開頭的數據來試試,看看效果,也好做個對比。

excel金額小寫轉大寫公式詳解(Excel中金額小寫轉大寫)3

看到結果應該知道小編為什麼說不盡如意了吧。這種方式有幾個問題:①沒有元角分單位;②有小數點;③沒有包含整字。

2、NUMBERSTRING函數

NUMBERSTRING函數是Excel中的一個隐藏函數,就是在函數列表裡查不到的,我們也就不去研究Excel出于什麼原因沒有公開這個函數了。

函數格式:「=NUMBERSTRING(VALUE,TYPE)」;

函數作用;處理小寫數字轉大寫數字;

說明:VALUE表示要轉換的數字;TYPE有三種類型可選為「1、2、3」,每種類型對應一種展示大寫方式。

注意點:這個函數隻支持正整數,不支持小數。

我們來看看三種類型的效果對比:

excel金額小寫轉大寫公式詳解(Excel中金額小寫轉大寫)4

從結果上來看類型參數為2的是我們需要的,并且我們發現也是沒有單位沒有整字的,而且函數不能處理小數。我們可以看下效果:

excel金額小寫轉大寫公式詳解(Excel中金額小寫轉大寫)5

而且我們還發現如果直接使用小數,結果會被四舍五入。

不過這些都不是問題,因為是函數所有操作空間就很多,我們可以進行加工得到我們想要的。

我們先來解決四舍五入的問題。今天我們來學習一個新函數TRUNC。這個函數很簡單,主要作用是把數字的小數部分截掉,保留整數部分,語法:TRUNC(數字)。

然後我們來解決小數部分。既然NUMBERSTRING函數隻能處理整數,那麼如果我們把小數部分轉為整數不就行了嗎?而且我們隻需要處理角和分也就是兩個字。

小編第一個想到的是截取函數,然後定位到角分,方案是可以的,就是公式寫出來很長很繁瑣。

如下圖,如一個兩位小數,我們首先把這個兩位小數乘以10,然後對結果截取整數部分得到金額1,那麼十分位就變成個位了;然後對這個兩位小數直接截取整數部分再乘以10得到金額2,并且金額2的個位一定是0,而且金額1和金額2位數也一定相等,隻要把金額1減金額2就可得到角了。

excel金額小寫轉大寫公式詳解(Excel中金額小寫轉大寫)6

同理「=TRUNC(A5*100)-TRUNC(A5*10)*10」可得分。

現在四舍五入,角,分問題都解決了,我們把公式拼接一下就可以了。最終得到公式:「=NUMBERSTRING(TRUNC(B5),2)&"元"&NUMBERSTRING(TRUNC(B5*10)-TRUNC(B5)*10,2)&"角"&NUMBERSTRING(TRUNC(B5*100)-TRUNC(B5*10)*10,2)&"分"」,我們看看效果:

excel金額小寫轉大寫公式詳解(Excel中金額小寫轉大寫)7

看到結果還是不是很理想,還是有很多問題,整數結尾應該是"元整",角為有值分位沒值的結尾應該是"角整",分位有值的且角位為0的應該是"零玖分"這樣,後面不應該有"零分"。當然這些問題也可通過IF函數在處理,但是這就會導緻公式很長。

小編發現主要問題就是在小數部分的處理上,因此我們可以選擇把小數部分複雜的處理交給VBA處理,代碼如下:

'獲取小數部分大寫金額 Function GetDecimal(cell) Dim arrResult() As String '截取小數點 arrResult = VBA.Split(cell, ".") Dim iArr As Integer iArr = UBound(arrResult) '沒有小數部分直接返回"元整" If iArr = 0 Then GetDecimal = GetDecimal & "元整" '有小數部分且是格式正确 ElseIf iArr = 1 Then Dim strSmall As String strSmall = arrResult(1) Dim iSmall As Integer Dim strJiao, strFen As String '獲取小數位數 iSmall = Len(strSmall) '一位小數則為分 If iSmall = 1 Then strJiao = getUpperCase(strSmall) '兩位小數則為分角 ElseIf iSmall = 2 Then strJiao = getUpperCase(Left(strSmall, 1)) strFen = getUpperCase(Right(strSmall, 1)) '大于兩位小數隻取前兩位分角 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 '有小數部分但是格式不正确 Else GetDecimal = GetDecimal & "數據格式有問題" End If End Function '數字轉大寫 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 = strWord End Function

代碼中也有解釋,小編注解應該還算清楚,不清楚的可以和小編一起探讨。

最後把整數部分和小數部分結合起來,使用公式:「=NUMBERSTRING(TRUNC(B5),2)&GetDecimal(B5)」即可得到最終效果。

excel金額小寫轉大寫公式詳解(Excel中金額小寫轉大寫)8

,
Comments
Welcome to tft每日頭條 comments! Please keep conversations courteous and on-topic. To fosterproductive and respectful conversations, you may see comments from our Community Managers.
Sign up to post
Sort by
Show More Comments
推荐阅读
柯佳嬿分享正面照文字(柯佳嬿飾演蔡環真)
柯佳嬿分享正面照文字(柯佳嬿飾演蔡環真)
  台灣演員柯佳嬿本是一名幼兒園老師,并非科班出身的演員,一次偶然的機會她出演了電影《一年之初》的拍攝,從此出道走上了職業演員的道路。   在美女如雲的娛樂圈,柯佳嬿卻顯得有點普通了,但是很有氣質,清新不俗。素來有“小桂綸鎂”之稱。      不得不說柯佳嬿是很有表演天賦的,出道以來把她出演的每個角色都拿捏得很到位,演技越來越精湛……   一直默默無聞的她在...
2026-06-05
未來吃香的職業技能(五大領域20個技能缺人才)
未來吃香的職業技能(五大領域20個技能缺人才)
  來源:央視網   央視網消息:繼國務院發布《職教二十條》後,日前,教育部、發改委、财政部、市場監管總局聯合印發了《關于在院校實施“學曆證書 若幹職業技能等級證書”制度試點方案》,并部署啟動試點,深化複合型技術技能人才培養培訓模式和評價模式改革。      五大領域率先配套等級證書   根據《試點方案》要求,從今年起,面向現代農業、先進制造業、現代服務業、...
2026-06-05
被老闆開除4大秘密(被開除後懷疑同事搞鬼)
被老闆開除4大秘密(被開除後懷疑同事搞鬼)
  懷疑被同事誣陷,導緻自己被公司開除,周大姐這心裡很不是滋味,12月27日早上八點三十分左右,周大姐再次來到了公司評理,卻不曾想,也因此和以前的同事郭大姐大打出手。   這段持續近一分鐘的打架視頻發生在南明區解放西路一家水彙裡,畫面中的兩人看似情緒都比較激動。最終,以郭大姐被打倒在地昏了過去,雙方才罷手。事情發生後,水彙的工作人員也立即報了警。      ...
2026-06-05
張萌安家劇組重聚(安家主演青澀照)
張萌安家劇組重聚(安家主演青澀照)
  要說這兩天最火的劇是哪部?相信很多人都會說《安家》和《完美關系》,是啊,這兩部劇最近真的是承包了大家的笑點和憤怒點,很多人的喜怒哀樂都在被這兩部劇牽動着,前有崔英俊後有張乘乘啊         而兩部劇之所以這麼受追捧其中一項就是因為劇中的演員們都是大家期望很高而且在大家心目中演技也在線的演員,可是沒想到在《完美關系》中江達琳的飾演者佟麗娅卻讓很多人大失...
2026-06-05
杉杉來了跟家裡人坦白(打工人跟老闆談戀愛)
杉杉來了跟家裡人坦白(打工人跟老闆談戀愛)
  作者:小閑,一名喜歡看劇的打工人,閑來跟大家聊聊電影、電視劇、演員相關的東西。如果需要轉載,記得聯系我授權哦。      《杉杉來了》中,同事阿佳對薛杉杉說:我們都知道啦,你跟大老闆走得近,是因為你給封月小姐獻過血。杉杉聽了不開心,說:哎,原來大家都知道我當血牛的事了……阿佳馬上大聲說:哎呀,什麼血牛不血牛的,我們都覺得你特别牛!      另外一名男同...
2026-06-05
Copyright 2023-2026 - www.tftnews.com All Rights Reserved