阿拉伯數字有個小漏洞,在 16300 前面補上一個 1,它就變成 116300,連換筆都不用。這也是報價單、收據、請款單的金額欄,往往要在小寫金額旁邊再寫一次壹貳參的緣故。把金額換成數字國字的大寫,筆畫多、結構繁,事後想添一筆來改金額就困難得多。
只是手打大寫很容易出錯,壹仟貳佰參拾肆這種字串,漏一個「佰」、多一個「零」都不容易一眼發現。Excel 與 Word 其實都內建轉換功能,只是它們藏在格式代碼和功能變數裡,沒有一顆寫著「轉大寫」的按鈕。
而軟體轉出來的結果對不對,得先有一份大寫金額的標準寫法可以對照,否則轉錯了也看不出來。
壹貳參與拾佰仟,數字國字大寫的字形對照
教育部《重編國語辭典修訂本》對「大寫」的釋義是「數目字的繁體。如壹、貳、參、肆等」。換句話說,壹貳參肆是 1234 的另一套寫法,金額欄裡要用的就是這一套。先把 0 到 9 的數字國字對照記起來,後面每一種做法轉出什麼,你才對得上。
| 阿拉伯數字 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
|---|---|---|---|---|---|---|---|---|---|---|
| 大寫 | 零 | 壹 | 貳 | 參 | 肆 | 伍 | 陸 | 柒 | 捌 | 玖 |
位數字的部分,十、百、千分別寫成拾、佰、仟,萬、億、兆則照原字不變。所以 1234 寫成壹仟貳佰參拾肆,12000 寫成壹萬貳仟。金額要用筆畫多的字,道理很直接,小寫的「一」添一筆變「二」,「十」多一撇就成了「千」,大寫字形複雜,這種事後添筆的空間小得多。

另外有一個地區差異要先知道。臺灣慣用「參」,簡體寫法是「叁」;「貳」在簡體則寫成「贰」。如果軟體裡的地區代碼選錯,轉出來的字就會變成簡體字形,這在後面的格式代碼裡很容易遇到。
位數中間出現零的時候,大寫有固定的處理方式,中間連續的零只寫一個「零」,結尾的零則不寫。
| 小寫金額 | 大寫寫法 |
|---|---|
| 1005 | 壹仟零伍 |
| 10500 | 壹萬零伍佰 |
| 100100 | 壹拾萬零壹佰 |
| 1000000 | 壹佰萬 |
| 120000000 | 壹億貳仟萬 |
| 0 | 零 |
報價單與收據上的金額句,通常是「幣別+大寫數字+元整」的組法,例如「新臺幣壹萬陸仟參佰元整」。「元整」代表元以下沒有角與分;金額有角分時,就不寫「整」,改成接上角、分,像是「壹仟貳佰參拾肆元伍角陸分」。幣別前綴常見「新臺幣」,也有人寫「新台幣」,依公司習慣選一種即可,Excel 兩種都能拼出來。
儲存格格式只換外觀,TEXT 公式才產生文字
在 Excel 裡轉大寫有 2 種做法,差別不在畫面長相,而在轉完之後儲存格裡的值還是不是數字。選錯做法,後面不是不能加總,就是拼不出「新臺幣…元整」的整句。
儲存格格式只改顯示方式,格子裡存的仍然是 1234,編輯列看到的也還是 1234,所以它照樣能被 SUM 加總、被其他公式引用。TEXT 公式則是另外產生一段文字,這段文字可以跟「新臺幣」「元整」拼成整句,卻不能再拿去計算。
| 項目 | 儲存格格式 | TEXT 公式 |
|---|---|---|
| 格子裡的值 | 仍是數字 1234 | 一段文字 |
| 能不能加總 | 能 | 不能 |
| 會不會自己加幣別與「元整」 | 不會 | 可以自己拼上去 |
| 適合的情境 | 報價表本身要顯示大寫 | 要產生「新臺幣…元整」整句 |

Microsoft 的 TEXT 函數說明頁指出,語法是 TEXT(value, format_text),第二個引數是一段文字字串,用來定義要套用在值上的格式。大寫轉換就是把大寫的格式代碼放進這個引數。由於 TEXT 的結果是文字,來源格一定要保留原本的數字,大寫那格只是引用它。
Word 的情況不同,它沒有儲存格,也沒有 TEXT,轉大寫只能靠功能變數。
用儲存格格式的特殊類別顯示大寫
儲存格格式是最快的一條路,選好金額格套用之後,數字就原地變成大寫,值本身不變。它適合只要「看起來是大寫」、不需要把大寫拼進其他文字的情境,例如報價表裡直接把某一欄顯示成大寫。
內建類別找得到時走內建選項最省事;內建清單找不到、或想批次寫進範本時,再改用自訂代碼。2 種方式的結果相同,差別只在輸入的位置。
套用步驟與數值仍可加總
選取要轉換的金額格,按 Ctrl+1 開啟儲存格格式,在「數值」索引標籤的類別清單選「特殊」,右側的地區設定選中文(台灣),類型清單就會列出大寫與小寫 2 個選項。選項名稱直接用範例字串表示,大寫寫著「壹萬貳仟參佰肆拾伍」,小寫寫著「一萬二千三百四十五」,清單裡不會出現「大寫」「小寫」的字樣。不同版本的 Excel 顯示的範例可能略有出入,以畫面上看到的為準。
套用大寫格式後,1234 顯示為壹仟貳佰參拾肆,1005 顯示為壹仟零伍,100000 則是壹拾萬。小寫格式會把 1234 顯示成一千二百三十四,但遇到 100000 時輸出的是「一十萬」,不是一般習慣的「十萬」,所以報價單不建議用小寫格式。
套好的格子可以用格式刷複製到整欄。因為值沒有改變,報價單的合計欄照常用 SUM 加總,不用另外處理。
自訂代碼 [DBNum2] 的寫法與逐位陷阱
要在自訂格式輸入代碼,同樣按 Ctrl+1,到「數值」索引標籤的「自訂」類別,在類型欄位輸入:
[DBNum2][$-404]G/通用格式Code language: plaintext (plaintext)
這是繁體中文版 Excel 的寫法,英文版的最後一段寫成 General,「G/通用格式」則是繁中版對通用格式的簡寫。套在 1234 上會顯示壹仟貳佰參拾肆。
代碼裡有 2 個部分各管一件事。[DBNum2] 決定轉成大寫;[$-404] 是地區代碼,404 代表臺灣,所以輸出的是「參」「陸」。如果換成 [$-804],輸出會變成簡體字形。另外 [DBNum1]、[DBNum2]、[DBNum3] 分別對應 3 種不同的輸出,一個格式碼只放其中一個。
最容易出錯的是最後一段。接「通用格式」會保留拾佰仟的位數字;若接 0,輸出就變成逐位照念,金額讀起來完全不對。
![大寫格式代碼 [DBNum2][$-404]G/通用格式 拆成 3 段,換成 DBNum1、DBNum3 或結尾接 0 時 1234 的輸出各不相同](https://www.pongo.com.tw/wp-content/uploads/2026/10/number-to-chinese-uppercase-dbnum-code.webp)
| 格式代碼 | 輸入 1234 得到 | 備註 |
|---|---|---|
[DBNum2][$-404]G/通用格式 | 壹仟貳佰參拾肆 | 正確的大寫金額 |
[DBNum2][$-404]0 | 壹貳參肆 | 1005 變成壹零零伍,100000 變成壹零零零零零,位數字全沒了 |
[DBNum2][$-804]0 | 壹贰叁肆 | 簡體字形 |
[DBNum1][$-404]G/通用格式 | 一千二百三十四 | 小寫 |
[DBNum3][$-404]G/通用格式 | 1千2百3十4 | 全形阿拉伯數字 |
第一次套用時,如果儲存格顯示一排 ########,那是欄寬放不下大寫字串,把欄位拉寬就會正常顯示,並不是格式壞掉。
TEXT 公式組出新臺幣大寫金額句
報價單常常需要的是「新臺幣壹萬陸仟參佰元整」這整句,而不只是數字變大寫。這時改用公式法,先用 TEXT 把數字轉成大寫,再用 & 接上幣別與「元整」。
金額只有整數的話,一行公式就夠用;金額帶角分的,則要用另一條較長的公式。無論哪一種,公式的結果都是文字,來源格要保留原本的數字,才不會一轉換就失去計算的依據。
整數金額的一行公式
假設金額放在 A1,在其他儲存格輸入下面這行公式:
="新臺幣"&TEXT(A1,"[DBNum2]")&"元整"Code language: plaintext (plaintext)
公式分成 3 段,前面的 "新臺幣" 是固定的前綴字串,中間的 TEXT(A1,"[DBNum2]") 負責把 A1 的數字轉成大寫,最後的 "元整" 是固定尾綴。3 段用 & 串成一句。
| A1 的金額 | 公式得到的結果 |
|---|---|
| 12000 | 新臺幣壹萬貳仟元整 |
| 35700 | 新臺幣參萬伍仟柒佰元整 |
| 0 | 新臺幣零元整 |
TEXT 的第二個引數只寫 [DBNum2],不要再加 [$-404]0 之類的內容,因為尾端的 0 會讓輸出變成逐位照念,前面格式代碼那一節已經看過這個結果。
來源格就算設成幣別格式,例如 $#,##0,TEXT 讀到的仍是原始數字,所以 16300 一樣得到新臺幣壹萬陸仟參佰元整。連帶千分位逗號的文字數字也能轉,TEXT("1,234","[DBNum2]") 同樣得到壹仟貳佰參拾肆。金額若是負數,TEXT 會先帶出 – 號再接大寫,例如 -300 得到 -參佰,報價單通常用不到,知道有這回事就好。
含角分金額的公式與先四捨五入的理由
金額帶小數時,例如 1234.56,要拆成元、角、分三段拼接。這個版本多了一個輔助欄,在 B1 輸入 =ROUND(A1,2),把 A1 四捨五入到小數 2 位,再讓下面這條公式引用 B1,公式放在 C1:
=IF(B1<0,"負","")&IF(INT(ABS(B1))=0,"零",TEXT(INT(ABS(B1)),"[DBNum2]"))&"元"&IF(ROUND(MOD(ABS(B1),1)*100,0)=0,"整",IF(INT(ROUND(MOD(ABS(B1),1)*100,0)/10)=0,"零",TEXT(INT(ROUND(MOD(ABS(B1),1)*100,0)/10),"[DBNum2]")&"角")&IF(MOD(ROUND(MOD(ABS(B1),1)*100,0),10)=0,"",TEXT(MOD(ROUND(MOD(ABS(B1),1)*100,0),10),"[DBNum2]")&"分"))Code language: plaintext (plaintext)
這條公式沒有幣別前綴。需要的話,在等號後面接上 "新臺幣"&,再接原本的 IF 部分即可。
輸出規則有 3 種,整數金額寫「…元整」,有角無分寫「…元伍角」,有分的話則視角的數字而定,角為 0 時要補一個「零」,寫成「…元零伍分」。
| B1 的金額 | 公式得到的結果 |
|---|---|
| 1234.56 | 壹仟貳佰參拾肆元伍角陸分 |
| 1234.5 | 壹仟貳佰參拾肆元伍角 |
| 1234.05 | 壹仟貳佰參拾肆元零伍分 |
| 12000 | 壹萬貳仟元整 |
| 100.01 | 壹佰元零壹分 |
| 1.1 | 壹元壹角 |
| 0 | 零元整 |
| 0.004 | 零元整 |
之所以要先 ROUND,是因為這條公式只會切出元、角、分,不會把小數第 3 位以後的尾數進位回元。以 1234.995 為例,直接套公式會得到壹仟貳佰參拾肆元玖角玖分;先用 ROUND 變成 1235,才會得到壹仟貳佰參拾伍元整,這才是四捨五入到分的正確結果。
報價單總額欄位的整套設定
把前面 2 種做法接進一份真正的報價單,欄位怎麼安排比公式本身更重要。這裡用龐果設計的網站設計報價當示範,共 3 個品項:網站設計 12,000、名片設計 3,500、維護 800,合計 16,300。
明細與合計欄保持數字,這樣才能加總;大寫另外放在獨立的一格。假設金額放在 D 欄:
| 儲存格 | 內容 | 說明/結果 |
|---|---|---|
| D1 | 12000 | 網站設計 |
| D2 | 3500 | 名片設計 |
| D3 | 800 | 維護 |
| D4 | =SUM(D1:D3) | 16300 |
| E4 | ="新臺幣"&TEXT(D4,"[DBNum2]")&"元整" | 新臺幣壹萬陸仟參佰元整 |
大寫欄要直接引用小計欄 D4,不要自己重新輸入一次金額。這樣合計一變動,大寫就跟著更新,不會出現數字改了、大寫忘了改的狀況,而這種前後對不上的報價單,比沒有大寫還麻煩。

大寫欄可以加粗,或是另外設欄位底色,讓收件的客戶一眼看到總額寫在哪裡。輸出 PDF 之前,要確認這一格的寬度夠,大寫句子比數字長得多,寬度不足時尾段可能被截掉,「元整」就消失了。
如果整份報價單是用 Word 排版,就改走 Word 的功能變數,由它來產生大寫。
Word 文件用功能變數轉大寫
Word 轉大寫靠的是功能變數,在欄位代碼裡加上格式開關 \* DBNUM2,欄位的計算結果就會以大寫顯示。它還能引用書籤,讓金額改一處、全文的大寫跟著變。
這種做法只適用整數金額,因為小數會被捨入。另外要釐清的是,Word 與 Excel 是 2 套不同機制,TEXT 與 [DBNum2] 在 Word 裡沒有作用,Excel 的公式也不能直接貼過來用。
用 Ctrl+F9 插入 DBNUM2 格式開關
步驟如下:
- 游標放在要出現大寫金額的位置。
- 按 Ctrl+F9,文件裡會出現一對大括號,這對括號必須由 Ctrl+F9 產生,手動打出來的大括號不會被當成欄位。
- 在括號內輸入
= 1234 \* DBNUM2,完整長相是{ = 1234 \* DBNUM2 }。 - 按 F9 更新,欄位會顯示壹仟貳佰參拾肆。

按 Alt+F9 可以在欄位代碼與欄位結果之間切換,Ctrl+F9 與 Alt+F9 這 2 個快捷鍵在 Microsoft 的 Word 欄位說明頁都有列出。想讓欄位更新後保留原本套用的格式,可以在代碼後面加上 \* MERGEFORMAT,Microsoft 說明格式化欄位結果的頁面有這個開關的用法。
大寫開關也可以寫成 \* CHINESENUM2,結果相同。不同開關得到的輸出如下:
| 欄位代碼 | 結果 |
|---|---|
{ = 1234 \* DBNUM2 } | 壹仟貳佰參拾肆 |
{ = 1234 \* CHINESENUM2 } | 壹仟貳佰參拾肆 |
{ = 1005 \* CHINESENUM2 } | 壹仟零伍 |
{ = 12000 \* CHINESENUM2 } | 壹萬貳仟 |
{ = 100000 \* CHINESENUM2 } | 壹拾萬 |
{ = 1234 \* DBNUM2 \* MERGEFORMAT } | 壹仟貳佰參拾肆 |
{ = 1234 \* DBNUM1 } | 一二三四 |
{ = 1234 \* DBNUM3 } | 一千二百三十四 |
要特別留意,Word 的 DBNUM1 是逐位小寫,DBNUM3 才是帶位數的小寫,這與 Excel 的 [DBNum1] 剛好錯開,Excel 的 [DBNum1] 輸出的是一千二百三十四。2 個程式的小寫代碼不能互相套用,需要小寫時要分開記。
用書籤讓金額改一處就全文更新
報價單裡總額出現不只一處時,逐處改數字很容易漏改。做法是把阿拉伯數字的金額設成書籤,其他需要大寫的位置,都引用這個書籤。
- 選取文件裡的金額文字,例如 12,000。
- 到「插入」→「書籤」,名稱輸入 Amount,按「新增」。
- 在需要大寫的地方按 Ctrl+F9,輸入
= Amount \* DBNUM2,也就是{ = Amount \* DBNUM2 }。
Microsoft 的公式欄位說明頁提到,公式的引數可以是書籤名稱,這個做法就是利用這一點。書籤內容帶千分位逗號也能讀,12,000 轉出來是壹萬貳仟。把欄位寫成 { REF Amount \* DBNUM2 } 結果相同,{ = Amount \# "#,##0" \* DBNUM2 } 也是。
之後只要改書籤那一處的阿拉伯數字,按 Ctrl+A 全選,再按 F9 更新全部欄位,所有大寫就會同步變動。
Word 只處理整數金額
Word 的公式欄位遇到小數,會先四捨五入再轉大寫,沒辦法產生「元伍角陸分」。例如 { = 1234.56 \* CHINESENUM2 } 得到的是壹仟貳佰參拾伍,小數被進位成 1235,既不是 1234,也沒有帶角分。
金額有角分時,改回 Excel 用前面含角分的公式算好,再把結果複製到 Word。Word 也不會自動加幣別與「元整」,這兩個要自己在欄位前後打字。
大寫金額轉換出錯的 4 種常見症狀與改法
轉換結果有問題時,從畫面上看到的症狀往回找原因最快。這 4 種症狀最常見,每一種都對應一個原因與一個改法,對上自己遇到的那一種照著改即可。

輸出逐位壹貳參肆,沒有拾佰仟
症狀是 1234 轉出來變成壹貳參肆,位數字全不見。原因幾乎都是格式代碼的最後一段用了 0 當佔位,例如 [DBNum2][$-404]0,這種寫法會把每一位數字單獨照念。
改法是把最後一段換成「通用格式」,繁中版寫 G/通用格式,英文版寫 General,輸出就會變回壹仟貳佰參拾肆。如果用的是 TEXT 公式,第二個引數只寫 [DBNum2],也就是 TEXT(1234,"[DBNum2]"),同樣得到壹仟貳佰參拾肆。
出現貳變贰、參變叁的簡體字形
症狀是大寫金額裡冒出簡體字形,3 變成「叁」,2 變成「贰」。原因是地區代碼用了 [$-804],那是中文(中國)的代碼,輸出自然是簡體。
改法是把 [$-804] 換成 [$-404],也就是中文(台灣)。TEXT 公式只寫 [DBNum2]、沒有帶地區碼時,字形依 Excel 所在環境的預設語言地區而定,臺灣的繁中環境輸出的是繁體的「參」。
TEXT 公式仍回傳原本的阿拉伯數字
症狀是 TEXT 公式完全沒有轉換,回傳的仍是原本的阿拉伯數字。原因在於 [DBNum2] 能不能轉出中文,取決於套用的語言地區,地區碼若是英文的 [$-409],1234 套上 [DBNum2] 依然只會顯示 1234。在非中文的介面或地區設定下,只寫 [DBNum2] 就可能遇到這種情形。
改法是在格式字串裡把地區碼寫明,例如 TEXT(A1,"[DBNum2][$-404]G/通用格式"),英文版 Excel 則把最後一段換成 General。實際結果會隨 Excel 版本與語言設定而異,換了環境最好重新確認一次輸出。
儲存格顯示一片井字號
症狀是儲存格顯示 ########,看不到任何大寫字。原因單純是大寫金額字數多,預設欄寬放不下,這不是格式或公式出錯。
把欄位拉寬就會正常顯示,雙擊欄名右側的分隔線,讓 Excel 自動調整欄寬也可以。
大寫金額最怕的不是轉換本身,而是金額改了,大寫卻沒有跟著變。把大寫欄全都接在原始數字格後面,不論用儲存格格式、TEXT 公式或 Word 書籤,數字一改,大寫自動更新,報價單上就不會出現兩個互相對不上的金額。
選哪一種做法,取決於你要的是「顯示成大寫」,還是「產出一整句金額」;先確定這一點,數字國字的轉換就是一次設定、之後都能沿用的事。
