合併列印工具 / 合併列印數字格式
合併列印數字格式跑掉:千分位、小數點、開頭的 0 不見怎麼辦
Excel 裡是「30,000」,合併到 Word 變成「30000」;「12.50」變成「12.5」; 電話「0912345678」少了開頭的 0。以下是原因、對照表,以及兩種解法。 以 Windows 版 Microsoft 365 為例。
為什麼格式會不見
千分位逗號、小數位數、貨幣符號、百分比,在 Excel 裡都只是顯示格式,
不是儲存格真正的內容。30,000 存的是 30000,5% 存的是 0.05。
Word 合併列印讀的是真正的內容,不是畫面上的樣子,所以格式全部留在 Excel 裡。 日期跑掉也是同一個原因,詳見合併列印日期格式。
先對症狀
| Excel 畫面上 | Word 合併後 | 實際存的是 |
|---|---|---|
| 30,000 | 30000 | 千分位是格式 |
| 12.50 | 12.5 | 小數位數是格式 |
| 5% | 0.05 | 百分比是格式,實際值是 0.05 |
| 1,234.57 | 1234.56789 | 儲存格存的小數比畫面上多 |
| 0912345678 | 912345678 | 開頭的 0 是格式補出來的,實際是數字 |
解法一:加上數字格式開關
- 按
Alt + F9切換到功能變數代碼,欄位會顯示成{ MERGEFIELD 金額 }。 - 在欄位名稱後面加上開關,例如
{ MERGEFIELD 金額 \# "#,##0" }。 - 全選後按
F9更新,再按一次Alt + F9切回。
| 想要的樣子 | 寫法 |
|---|---|
| 30,000 | { MERGEFIELD 金額 \# "#,##0" } |
| 12.50 | { MERGEFIELD 單價 \# "0.00" } |
| 1,234.57 | { MERGEFIELD 金額 \# "#,##0.00" } |
| $1,200 | { MERGEFIELD 金額 \# "$#,##0" } |
| 0912345678 | { MERGEFIELD 電話 \# "0000000000" } |
| 5% | { = { MERGEFIELD 比例 } * 100 \# "0" }% |
0 代表「這一位一定要有數字,沒有就補 0」,# 代表「有才顯示」。
電話寫十個 0,就固定補到十位數。百分比要先乘以 100,所以用公式欄位包住,% 寫在括號外面。
大括號一律用 Ctrl + F9 產生,鍵盤打的不會生效。
解法二:在 Excel 先轉成文字
Word 讀到文字就照抄。在名單旁邊新增一欄(以數值在 B2 為例),再到 Word 插入新的欄位:
| 想要的樣子 | Excel 公式 |
|---|---|
| 30,000 | =TEXT(B2,"#,##0") |
| 1,234.57 | =TEXT(B2,"#,##0.00") |
| 0912345678 | =TEXT(B2,"0000000000") |
| 5% | =TEXT(B2,"0%") |
電話、學號、郵遞區號這類不拿來計算的資料,更根本的做法是在輸入之前就把整欄設成「文字」, 開頭的 0 從一開始就不會被吃掉。
不想加開關:Excel 顯示什麼就帶入什麼
速印讀的是 Excel 畫面上顯示的樣子,不是底層的數值。畫面上是什麼,文件裡就是什麼:
- 1,234,567:千分位保留
- 1,234.57:照畫面四捨五入到兩位,不會冒出一長串小數
- $30,000:貨幣符號保留
- 5%:百分比保留,不會變成 0.05
- 0912345678:開頭的 0 保留
上傳 .xlsx,或直接從 Excel、Google 試算表複製貼上都可以。檔案在你的瀏覽器裡處理,不會上傳。
開啟合併列印工具常見問題
- 為什麼 1,234.57 合併後變成一長串小數?
-
儲存格實際存的小數比畫面上多,畫面上的兩位小數只是顯示格式。
加上開關
\# "#,##0.00",或在 Excel 先用TEXT轉成文字。 - 電話號碼開頭的 0 不見了怎麼辦?
-
代表這欄在 Excel 裡其實是數字,畫面上的 0 是格式補出來的。
最好在輸入前就把欄位設成文字;已經輸入的可以用
\# "0000000000"補回固定位數。 - 金額前面想加 NT$ 怎麼寫?
-
把 NT 寫在功能變數外面:
NT{ MERGEFIELD 金額 \# "$#,##0" },結果是 NT$30,000。