2015年3月14日 星期六

合併列印時參照的數值格式與合併列印後不同(2)

Office 2010
Excel 為資料檔
Word 為主文件

Excel 資料檔上設定的數值格式,Word 合併後變成不同的數值。

例如:
Excel 儲存格是整數,Word 合併後多了長長的小數;
Excel 儲存格是民國格式日期,Word 合併後變成西元格式日期;

解決方法二:在 Word 自訂數值格式
  1. 在 Word 主文件按 Alt + F9
  2. 會看到功能變數代碼
    長得像下面這樣子
    { MERGEFIELD "欄位名稱"}
  3. 在欄位名稱後面加上數字顯示格式參數即可
    改變後就像這個樣子
    { MERGEFIELD "欄位名稱" \數值格式}
  4. 再按一次  Alt + F9 恢復原狀
  5. 在合併資料上(或全選)按右鍵 → 更新功能變數(或按 F9),就可以看到成果。
參考數值格式:
  1. 取整數 (四捨五入)
    { MERGEFIELD "欄位名稱" \#0}
  2. 取二位小數 (四捨五入)
    { MERGEFIELD "欄位名稱" \#0.00}
  3. 加千分位逗號
    1. 0值時顯示空白
      { MERGEFIELD "欄位名稱" \#,###}
    2. 0值時顯示 0
      { MERGEFIELD "欄位名稱" \#,##0}
  4. 顯示為國字
    1. 小寫簡讀:一二三
      { MERGEFIELD "欄-位名稱" \* DBNUM1}
    2. 大寫詳讀:壹佰貳拾參  (無法轉換超過百萬的數字,最多六位數)
      { MERGEFIELD "欄位名稱" \* DBNUM2}
    3. 小寫詳讀:一百二十三  (無法轉換超過百萬的數字,最多六位數)
      { MERGEFIELD "欄位名稱" \* DBNUM3}
  5. 日期
    1. 顯示西元年月日:2015/03/14
      { MERGEFIELD "欄位名稱" \@ YYYY/MM/dd}
    2. 顯示民國年月日:104年3月14日
      { MERGEFIELD "欄位名稱" \@ "e年M月d日"}

更多功能變數寫法可參考 Excel 儲存格格式的寫法。


合併列印時參照的數值格式與合併列印後不同(1)

14 則留言:

  1. 請問有辦法在取整數後(四捨五入)後一併加入千分逗號嗎?

    回覆刪除
  2. 請問超過百萬的大寫有辦法解決?

    回覆刪除
    回覆
    1. 我的解決方案是在 Excel 增加一個輔助欄,先用 TEXT 函數轉換成國字大寫,Word 再用這個輔助欄套印。簡單的說就是轉換的工作讓 Excel 來做。

      以 Excel 2016 為例:
      假設 F 欄是數字,E 欄是輔助欄,
      E2=TEXT(F2,"[DBNum2][$-zh-TW]G/通用格式")

      刪除
    2. Office 更新後,合併列印無法正確轉換日期,利用 Excel 輔助欄轉換的例子:
      https://pejslin.blogspot.com/2018/12/office.html

      刪除
  3. Hello ~ 你好 ~ 想請問合併列印 如果是港式格式的日期1-May-2017 跑不出來~
    跑出來的數值是42856

    回覆刪除
    回覆
    1. 跟上面合併列印無法正確轉換日期一樣,
      建議用 Excel 增加輔助欄轉換程所需的日期格式,如下:
      https://pejslin.blogspot.com/2019/04/excel-text.html
      請參閱。

      刪除
  4. 請問如果要顯示百分比?

    回覆刪除
    回覆
    1. 建議一
      Excel 增加輔助欄,將原欄位乘100,再改用輔助欄套印。

      刪除
    2. 建議二
      如果 Excel 不方便增加欄位,就用 Word 公式,請參閱:
      https://pejslin.blogspot.com/2019/07/word.html

      刪除
  5. 提供給大家另一個方法,轉換為文字就可以囉

    回覆刪除
    回覆
    1. 計算完成直接轉為文字,也是個好方法。

      刪除
  6. 可以將5,000,000以5,000仟元表示嗎?

    回覆刪除
    回覆
    1. Word 可用
      { ={ MERGEFIELD 金額 }/1000 \#,### } 仟元


      Excel 加輔助欄來轉換
      例:=TEXT(D2/1000,"#,##0")

      刪除