萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 辦公室軟體 >  >> Excel 教學 >> Excel 綜合

Excel 數字轉中文大寫金額公式大全:三大經典公式與自製邏輯解析

Excel 數字轉中文大寫金額公式大全

財務單據常需將阿拉伯數字轉為「壹佰貳拾叁元整」等中文大寫。網路流傳數十種公式,經測試篩選,有三大經典公式最穩健通用。本文詳解三式優劣,並揭露自製通用公式的核心邏輯。

三大經典公式(假設數值在 A1)

公式一:巢狀 SUBSTITUTE/TEXT 混合法

=SUBSTITUTE(SUBSTITUTE(
  IF(A1<0,"負","") &
  TEXT(TRUNC(ABS(ROUND(A1,2))),"[DBNum2]") & "元" &
  IF(ISERR(FIND("." ,ROUND(A1,2))),"",TEXT(RIGHT(TRUNC(ROUND(A1,2)*10)),"[DBNum2]")) &
  IF(ISERR(FIND(".0",TEXT(A1,"0.00"))),"角","") &
  IF(LEFT(RIGHT(ROUND(A1,2),3))=".",TEXT(RIGHT(ROUND(A1,2)),"[DBNum2]")&"分",
     IF(ROUND(A1,2)=0,"","整")),
  "零元零",""),"零元","")

特點: 邏輯完整處理元/角/分/整/零,負數加「負」字。結構複雜但極度穩健。

公式二:CONCATENATE 分段組合法

=CONCATENATE(
  IF(A1<0,"負",""),
  TEXT(IF(TRUNC(A1)=0,"",TRUNC(ABS(A1))),"[DBNum2]"),
  IF(INT(TRUNC(A1))=0,"","元"),
  TEXT(IF(OR(ABS(A1)<0.1,TRUNC(A1)=A1),"",RIGHT(TRUNC(A1*10),1)),"[DBNum2]"),
  IF(RIGHT(TRUNC(A1*10),1)="0","","角"),
  TEXT(IF(RIGHT(TRUNC(A1*100),1)="0","",RIGHT(TRUNC(A1*100),1)),"[DBNum2]"),
  IF(RIGHT(TRUNC(A1*100),1)="0","","分"))

特點: 模組化清晰,分段處理整數/角/分,負數同加「負」字。易維護擴展。

公式三:ROUND/TEXT 整數判斷法(推薦)

=IF(ROUND(A1,2)=0,"",
  IF(ROUND(ABS(A1),2)>=1,TEXT(INT(ROUND(ABS(A1),2)),"[DBNum2]")&"元","") &
  IF(RIGHT(TEXT(A1,".00"),2)*1=0,"整",
    IF(RIGHT(TEXT(A1,".00"),4)*1>=1,
      IF(RIGHT(TEXT(A1,".00"),2)*1>9,"","零"),
      IF(ROUND(ABS(A1),2)>=1,"零",""))) &
  IF(RIGHT(TEXT(A1,".00"),2)*1>9,TEXT(LEFT(RIGHT(TEXT(A1,".00"),2)),"[DBNum2]")&"角","") &
  IF(RIGHT(TEXT(A1,".00"),2)*1>0,TEXT(RIGHT(TEXT(A1,".00"),1)),"[DBNum2]")&"分","整")))

特點: 對負數按正數處理(不加「負」字),建議搭配條件格式將負數標紅。邏輯最精簡、效能最好,處理「零元」「整」「零角」等邊界情況最精準。

核心關鍵:`[DBNum2]` 格式代碼

所有公式核心仰賴 Excel 特殊格式代碼 [DBNum2]:

  • 在 `TEXT(數值,"[DBNum2]")` 中,將阿拉伯數字轉為中文大寫數字(壹貳參...)。
  • 僅轉換「數字」,不含「元/角/分/整」單位,需自行拼接。

自製通用公式的「組裝」邏輯

作者提出將問題分解為三獨立模組,再用 `&` 串接:

  1. 整數部分(元): `INT(ABS(ROUND(A1,2)))` → `[DBNum2]` → 加「元」。
  2. 角位(十分位): `ROUND(ABS(A1),1)*10` 取個位 → `[DBNum2]` → 加「角」(處理零角邏輯)。
  3. 分位(百分位): `ROUND(ABS(A1),2)*100` 取個位 → `[DBNum2]` → 加「分」(處理零分/整邏輯)。

再用 `IF` 處理邊界:零值顯示空白、負數改用條件格式標紅、非數值回傳錯誤值。

實務建議

  • 優先使用公式三,搭配條件格式(數值<0 設紅字)。
  • 將公式存為定義名稱(如 `ChineseCapital`),工作表中直接輸入 `=ChineseCapital` 提升可讀性。
  • 若需支援「萬/億」大數字,需擴展邏輯分段處理(每四位一節)。
  • 正式單據建議改用 VBA 自訂函數或增益集,公式維護成本極高。

理解 `[DBNum2]` 與分段邏輯,不再盲目複製貼上,才能在異常資料面前從容調適。

copyright © 萬盛學電腦網 all rights reserved