[摘 要] 在日常財會工作中,經常會遇到將人民幣金額小寫轉換成大寫的問題,由于在Excel中沒有現成的函數可用,基本上都是使用Excel宏代碼自定義函數解決,但相對于基礎的Excel操作比較復雜。本文采用Excel嵌套函數實現金額小寫轉換成大寫。
[關鍵詞] 會計電算化;大小寫轉換;Excel
doi : 10 . 3969 / j . issn . 1673 - 0194 . 2010 . 20 . 003
[中圖分類號]F232 [文獻標識碼]A [文章編號]1673 - 0194(2010)20- 0010 - 01
一、用Excel的宏代碼實現金額小寫轉換成大寫
先打開某個需要執行人民幣金額大寫轉換的Excel工作簿,然后單擊菜單“工具→宏→Visual Basic 編輯器”命令,調出“Visual Basic 編輯器”,在“Visual Basic 編輯器”窗口中右擊“ThisWorkbook”選項,選擇“插入→模塊”命令,接著在打開的代碼窗口中輸入以下代碼:
Function dx(M)
y = Int(Abs(M))
j = Round(Abs(M) - y, 2)
f = (j * 10 - Int(j * 10)) / 10
a = Application.Text(y, \"[DBNum2]\")
d = \"元\"
If j < 0.1 Then e = \"\" Else e = \"角\"
If f < 0.01 Then g = \"整\" Else g = \"分\"
If f < 0.01 Then c = \"\" Else c = Appl ication.Text(Round(f * 100, 0), \"[DBNum2]\")
If j = 0 Then b = \"\" Else b = Application.Text(Int(j * 10), \"[DBNum2]\")
If M < 0 Then z = \"負\" Else z = \"\"
dx = z a d b e c g
End Function
代碼輸入完畢后,退出“Visual Basic 編輯器”窗口,這時所輸入的代碼就會自動保存。經過上述步驟的操作,自定義了一個人民幣金額大寫轉換的函數DX。
在窗口中,如果要將F列單元格小寫的人民幣金額轉換成大寫并輸入與之對應的G列單元格中,可先在G3單元格中輸入函數=dx(F3),再按下回車鍵,然后選中G3單元格,拖動填充手柄往下填充,直到完成F列單元格所有人民幣小寫金額轉換成大寫金額的工作即可。如果經常執行人民幣金額的大寫轉換操作,可在窗口中(已添加了自定義函數DX),先單擊菜單“文件→另存為”命令,打開“另存為”對話框,將“Excel文件”另存為Excel加載宏,文件名為“人民幣金額大寫轉換.xla”,保存到“另存為”對話框定位到的文件夾下即可。
二、用嵌套函數實現金額小寫轉換成大寫
除了用Excel的宏代碼實現金額小寫轉換成大寫,還可以用下面這個函數公式迅速地完成人民幣金額的大寫轉換工作(本例中以轉單元格B2數據為例,直接將下面{ }中公式復制到需要顯示大寫金額的單元格并修改相應的小寫數字單元格B2代碼即可):
{ =SUBSTITUTE(SUBSTITUTE
(IF(B2<0,\"負\",\"\")TEXT(TRUNC(ABS(ROUND(B2,2))),\"[DBNum2]\")\"元\"IF(ISERR(FIND(\".\",ROUND(B2,2))),\"\",TEXT(RIGHT(TRUNC(ROUND(B2,2)*10)),\"[DBNum2]\"))IF(ISERR(FIND(\".0\",TEXT(B2,\"0.00\"))),\"角\",\"\")IF(LEFT(RIGHT(ROUND(B2,2),3))=\".\",TEXT(RIGHT(ROUND(B2,2)),\"[DBNum2]\")\"分\",IF(ROUND(B2,2)=0,\"\",\"整\")),\"零元零\",\"\"),\"零元\",\"\") }