首頁>科技>

專欄限時活動即將結束,需要的趕緊加購噢!

大家好,在財務上我們經常會將小寫的金額轉換成大寫金額,利用EXCEL的單元格格式或是內置的函數都只能針對整數部分進行轉換,如果遇到有多位小數、整數、負數等混合的數據,上面兩種辦法都無法實現,今天我們使用組合函數的方式來解決這一問題。

本案例中多位小數採用的是四捨五入原則。

先來拆解函數公式,將輸入的數字分為整數和小數部分。

先看整數部分:

函數公式:TEXT(INT(ABS(A3)),"[DBNUM2]")&"元"

函數公式的意思:先將數字轉換成正數,然後取出整數部分,用TEXT函數轉換成大寫數字,後面添加元,遇到負數的情況,還得再處理。

修改函數公式,在前面添加IF判斷條件,如果數字小於0,則在前面添加“負”字。

接下來是小數部分的轉換

函數公式:TEXT(MOD(A3,1)*100,"[DBNUM2]0角0分")

函數意思:使用MOD求餘函數,讓數字除以1得到它的餘數也就是小數部分,使用函數TEXT將其轉換成大寫數字,面對負數的時候,這個公式也有問題,負數求餘,除數應該修改為“-1”。

於是修改函數公式:SUBSTITUTE(IF(A3<0,TEXT(MOD(A3,-1)*100,"[DBNUM2]0角0分"),TEXT(MOD(A3,1)*100,"[DBNUM2]0角0分")),"-","")

函數公式意思:先用IF條件判斷,如果小於1的數字,則MOD函數的除數是“-1”,否則就是“1”,由於負數的MOD餘數也是負數,需要用SUBSTITUTE函數將前面的符號“-”去除。

觀察下表格里的小數部分的轉換情況,裡面的“零角零分”“零角壹分”“壹角零分”都是書寫不規範的,需要替換掉。

有三種情況需要替換,故使用了三次“SUBSTITUTE”函數。

=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(IF(A6<0,TEXT(MOD(A6,-1)*100,"[DBNUM2]0角0分"),TEXT(MOD(A6,1)*100,"[DBNUM2]0角0分")),"-",""),"零角零分","整"),"零分","整"),"零角","零")

最後將整數和小數部分的函數合在一起,組成完整的函數公式“=IF(A3<0,"負","")&TEXT(INT(ABS(A3)),"[DBNUM2]")&"元"&SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(IF(A3<0,TEXT(MOD(A3,-1)*100,"[DBNUM2]0角0分"),TEXT(MOD(A3,1)*100,"[DBNUM2]0角0分")),"-",""),"零角零分","整"),"零分","整"),"零角","零")”。

函數公式比較長,理解起來其實也不難,不想理解的,直接拿去套用即可。

2
最新評論
  • 整治雙十一購物亂象,國家再次出手!該跟這些套路說再見了
  • 實驗烘箱使用注意項