網友問到:在 Excel 中如何如下圖將數字金額轉換為國字金額?
例如:將 472 轉換為肆佰柒拾貳元。
【公式設計與解析】
儲存格F1:
=TEXT(MID(TEXT($C1,"000"),INT(COLUMN(A:A)/2)+1,1),"[DBNum2]")
複製儲存格F1,分別貼至儲存格H1和儲存格J1。
(1) TEXT($C1,"000")
不管儲存格C1中的數字為幾位數,全部轉換為 3 位數,前面補 0。
(2) INT(COLUMN(A:A)/2)+1,1)
COLUMN(A:A)=1,向右複製時,COLUMN(A:A)=1→COLUMN(B:B)=2→COLUMN(C:CA)=3→....。
INT(COLUMN(A:A)/2)+1,1)=1,向右複製每間隔兩欄貼上,可得 2, 3, 4, …。
(3) TEXT(第(1)式, 第(2)式, "[DBNum2]")
使用參數 [DBNum2],可以將數字顯示為『一、二、三、四、五、六、七、八、九、零』。
公式自動產生,儲存格H1:
=TEXT(MID(TEXT($C1,"000"),INT(COLUMN(C:C)/2)+1,1),"[DBNum2]")
公式自動產生,儲存格J1:
=TEXT(MID(TEXT($C1,"000"),INT(COLUMN(E:E)/2)+1,1),"[DBNum2]")
如果你要增加數值的位元數,則仿照以上的公式即可完成。
例如:將 8615 轉換為捌千陸佰壹拾伍元。
儲存格F1:
=TEXT(MID(TEXT($C1,"0000"),INT(COLUMN(A:A)/2)+1,1),"[DBNum2]")
其實公式完全一模一樣,複製儲存格F1,分別貼至儲存格H1和儲存格J1和儲存格L1。

*****
HI~我有試過你的教學,發現到TEXT($C1,"0000")若改成TEXT($C1,"000") 似乎也是顯示正常哦~這是代表這個數值格式並不會去限制數字位數的意思嗎? 只是好奇,提供給你參考,感謝您的好文章,受益匪淺.
參數:"0000"是要將未滿4位數者前面補0,若是4位數使用參數:"000",例如輸26時,會顯示026,而不會顯示0026。 您再試試。
您的部落格分享真的太棒,每次都受益匪淺~自己在工作上有些問題卡關,想來請教您~ 有關數字的表達,如「1,234,567,890」,想要表達為「12億3,456萬7,890元」,可以怎麼設定呢?有勞解惑,感激不盡!
假設數字位於儲存格A1,公式:=MID(TEXT(A1,"0000000000"),1,2)&"億"&TEXT(MID(TEXT(A1,"0000000000"),3,4),"#,###")& "萬"&TEXT(MID(TEXT(A1,"0000000000"),7,4),"#,###")&"元" 進階版 =IF(A1>10^8,TEXT(MID(TEXT(A1,"0000000000"),1,2),"##")&"億","")&IF(A1>10^4, TEXT(MID(TEXT(A1,"0000000000"),3,4),"#,###")&"萬","")&TEXT(MID( TEXT(A1,"0000000000"),7,4),"#,###")&"元"
A B C 1 116 , 4.7 , 0.79 2. 39.4 , 5.96 , 3.26 3. 40 , 1.37 , 0.99 4. 81.6 , 3.56 , 2.48 1) 如A 是整數 小數點後數字要符合23457 任2 個 或4 個 取小數點的 1. 7/79 (2) A 是小數點一位, B C 只要符合23457 任何一個數即可 3. 37/99 (3) 如果 B C 是1.37 的 1 出現反 白 B C 是 3.58 的 3 出現反白 B C 是4.04 的04 出現反 白 希望你幫我解決這個難題 謝謝
如上題 1. 7/79=自動算出相除的數 3. 37/99=自動算出相除的數
如上題 1. 7/79=自動算出相除的數 3. 37/99=自動算出相除的數