一、金額為整數(shù) 如下圖所示,A2:A5為整數(shù)金額,最小單位是元,沒有角和分。將整數(shù)小寫金額轉(zhuǎn)為大寫比較簡單,只需要使用Text函數(shù)即可。 Text函數(shù)可以將數(shù)值轉(zhuǎn)成指定格式的文本,語法為Text(value,format_text)。當(dāng)參數(shù)format_text指定為“[dbnum2]”時(shí),可以將小寫數(shù)字轉(zhuǎn)為中文大寫數(shù)字,例如“12”顯示為“壹拾貳”。 但是當(dāng)金額有小數(shù),有角和分時(shí),只使用Text函數(shù)會(huì)轉(zhuǎn)換錯(cuò)誤。如下圖所示: 使用Text函數(shù)轉(zhuǎn)換的大寫金額仍然保留了小數(shù)點(diǎn),而且無法區(qū)分角和分。 二、金額有小數(shù) 如下圖所示,A2:A6的金額有小數(shù)。將小寫金額轉(zhuǎn)為大寫金額,需要在B2單元格輸入公式 =IF(INT(A2),TEXT(INT(A2),"[dbnum2]")&"元",)&IF(INT(A2*10)-INT(A2)*10,TEXT(INT(A2*10)-INT(A2)*10,"[dbnum2]")&"角",IF(INT(A2)=A2,,IF(A2<0.1,,"零")))&IF(ROUND(A2*100-INT(A2*10)*10,),TEXT(ROUND(A2*100-INT(A2*10)*10,),"[dbnum2]")&"分","整") 公式解析: 1、“TEXT(INT(A2),"[dbnum2]")”是為了取得A列金額的整數(shù)部分。Int函數(shù)是取整函數(shù),例如Int(12.34)結(jié)果為12。如下圖所示,使用Text-Int函數(shù)可以取得整數(shù),即單位為“元”的部分。 當(dāng)金額不足1元時(shí),Text-Int函數(shù)返回“零”,例如C2單元格。當(dāng)不足1元時(shí),無需返回“零元”,因此使用IF函數(shù)進(jìn)行條件判斷。IF(INT(A2),TEXT(INT(A2),"[dbnum2]")&"元",)指當(dāng)Int(A2)=0(即A2<1)時(shí),返回空值。 2、TEXT(INT(A2*10)-INT(A2)*10,"[dbnum2]")&"角"是為了獲得A列金額中的“角”。Int(A2*10)將A2單元格的金額擴(kuò)大10倍后取整,舍棄原金額的“分”。Int(A2)*10取整后擴(kuò)大10倍,舍棄原金額的“角”和“分”,兩者的差額INT(A2*10)-INT(A2)*10就是原金額的“角”。然后使用Text函數(shù)將小寫數(shù)字轉(zhuǎn)為中文大寫,并添加單位“角”。 C3和C5單元格返回的結(jié)果都是“零角”,其中C3為12元整,無需返回“零角”,C5為“零角陸分”,需要返回“零角”,因此需要使用IF函數(shù)判斷是否需要返回“零角”。 IF(INT(A2*10)-INT(A2)*10,TEXT(INT(A2*10)-INT(A2)*10,"[dbnum2]")&"角",IF(INT(A2)=A2,,IF(A2<0.1,,"零"))),指當(dāng)A列金額為整數(shù)或不足1角時(shí),無需返回“零角”。 3、TEXT(ROUND(A2*100-INT(A2*10)*10,),[dbnum2]")&"分"是為了獲得A列金額中的“分”。IF(ROUND(A2*100-INT(A2*10)*10,),TEXT(ROUND(A2*100-INT(A2*10)*10,),"[dbnum2]")&"分","整")表示當(dāng)“零分”時(shí),如C3、C4,則在大寫金額后加整。 |
|