在Excel中,通過設置單元格格式,可以將數字轉為中文大寫數字,如下圖。然而這往往不是我們想要的結果。
通過TEXT函數及其它函數的組合,可以實現我們想要的效果。比如「-123456.01「,顯示為:負壹拾貳萬叄仟肆佰伍拾陸元零壹分
公式解釋:
=TEXT(TRUNC(RMB(A2)),"[dbnum2]G/通用格式元;[dbnum2]負G/通用格式元;")&IF(--RIGHT(RMB(A2),2)=0,"整",TEXT(LEFT(RIGHT(RMB(A2),2),1),"[dbnum2]0角;;零"))&TEXT(RIGHT(RMB(A2),1),"[dbnum2]0分;;")
公式很長,咱們細看會發現,公式其實是由三部分組成:金額的元位,金額的角位,金額的分位,然後各部分使用「&」連接符連接起來。
元位部分
TEXT(TRUNC(RMB(A2)),"[dbnum2]G/通用格式元;[dbnum2]負G/通用格式元;")
◆TRUNC(RMB(A2))
RMB函數將數字以貨幣格式顯示,並且小數點保留2位小數
TRUNC函數將數字的小數部分截去,返回整數
◆[dbnum2]G/通用格式元
格式轉換,將數字轉換為中文大寫數字,比如12,轉換成「壹拾貳「。前面的負字是識別」-「負號。後面的」元「字是單位
◆使用TEXT函數將整數部分的數字轉為中文大寫數字
角位部分
IF(--RIGHT(RMB(A2),2)=0,"整",TEXT(LEFT(RIGHT(RMB(A2),2),1),"[dbnum2]0角;;零"))
◆--RIGHT(RMB(A2),2)=0
使用RIGHT函數提取金額小數點右邊的2位數字,判定角位及分位是否都是0;兩個減號是將文本數值轉真正數值
◆TEXT(LEFT(RIGHT(RMB(A2),2),1),"[dbnum2]0角;;零")
使用TEXT函數將角位數字轉為中文大寫數字
分位部分
TEXT(RIGHT(RMB(A2),1),"[dbnum2]0分;;")
◆解釋同上