【分享】數字轉英文大寫 (內建函數應用)



贊助商連結


leonchou
2003-05-18, 11:01 AM
Convert a number to English words

不少人曾問過此問題,而網路上提供的多是自訂函數的做法,如:
http://support.microsoft.com/support/kb/articles/Q213/3/60.ASP

有的人想學習或研究VBA,然而對於只想使用的人而言,
不懂 VBA 的話,想修改成自己需要的功能是有困難的。

在此提供的是使用 Excel 內建工作表函數達成的
[數字轉英文大寫] 功能,無巨集、無VBA。
可自選貨幣(Currency)符號,適合外國支票、匯票或相關文件使用。
內建函數應該對一般人來說比較容易理解。

由於這個是以前用 Excel97 做的,如果你認為有任何
可改進之處,或 Excel2000、2002 有更理想的做法,
歡迎提出來討論。 :)

贊助商連結


cinta3344
2003-05-19, 01:17 PM
謝謝分享,好犀利啊!
雖然沒有用到很複雜的函數
可是當中的邏輯觀念倒是要很清楚
否則一堆or跟nested if還真會把人搞混了

leonchou
2003-12-19, 11:14 PM
[2003/12/19]
1.修改為支援到千萬(8位數),
2.修正了小數超過兩位時的Bug (採四捨五入方式)。

裡面用的內建函數原本就不難,如果能搞懂它
就可以自行修改成你要的了。

[2004/3/22]
修正沒有小數時的 Bug
(例如 123 會顯示成 ONE HUNDRED TWENTY THREE AND CENTS THREE)

[2004/4/9]
修正小數只有一位時的Bug,例如 123.40,它會顯示成
one hundred twenty three and cents FORTY FOUR only.

為了不浪費版面和空間,把它整理一下 :)

leonchou
2004-04-10, 01:14 AM
改掉反而沉下去了..

有點傷腦筋 ^^||

larry0116
2004-04-30, 05:41 AM
:)
很好用,謝啦!!;)

jnchen19
2005-08-10, 02:19 PM
當初看VBA的書, 差點脫窗!!
後來就用"錄製新巨集+自製功能按鈕" 一樣達成任務.
真是佩服大大這種能寫程式的人
來用力頂上去

leonchou
2005-08-10, 11:17 PM
嗚... 我這寫的是公式, 不是程式.. T_T

polar168
2007-06-26, 04:56 PM
對不起, 翻出這麼久的文章來

請問如果像英鎊,歐元這種貨幣又該是怎麼翻呢?

歐元EUR123.45 => EURO DOLLARS ONE HUNDRED TWENTY THREE AND CENTS FORTY FIVE ONLY. 或 EUR DOLLARS呢?

英鎊GBP123.45 => PONDS STERLING ONE HUNDRED TWENTY THREE AND CENTS FORTY FIVE ONLY 或是 PONDS STERLING ONE HUNDRED TWENTY THREE AND PENCE FORTY FIVE ONLY. 呢