=1,TEXT(INT(ROUND(ABS(B1),2)),"[DBNum2]")&"元整",IF(RIGHT(TEXT(B1,".00")" />

工作中经常会遇到将小写金额转换为大写金额的情况,每次都照着小写金额重新输入很麻烦也很容易出错,忽然想到excel中函数功能的强大,以下是近年来搜索总结的东东,保存一下,以备不时之需。
公式1:(将其中的B1 修改为你想转换的单元格即可,已验证可用。)
IF(ROUND(B1,2)=0,"",IF(ROUND(ABS(B1),2)>=1,TEXT(INT(ROUND(ABS(B1),2)),"[DBNum2]")&"元整",IF(RIGHT(TEXT(B1,".00"),4)*1>=1,IF(RIGHT(TEXT(B1,".00"),2)*1>9,"零"),IF(ROUND(ABS(B1),2)>=1,"零角分整")))
公式2:(将其中的F4 修改为你想转换的单元格即可,已验证可用,如果为零,则显示零分)
IF(F4<1,IF(F4<0.1,TEXT(INT(F4*100),"[DBNum2]G/通用格式")&"分",IF((INT(F4*100)-INT(F4*10)*10=0),TEXT(INT(F4*10),"[DBNum2]G/通用格式")&"角整",TEXT(INT(F4*10),"[DBNum2]G/通用格式")&"角"&TEXT(INT(F4*100)-INT(F4*10)*10,"[DBNum2]G/通用格式")&"分")),TEXT(INT(F4),"[DBNum2]G/通用格式"&"元")&IF((INT(F4*10)-INT(F4)*10)=0,IF((INT(F4*100)-INT(F4*10)*10)=0,"零"),IF((INT(F4*0.1)-INT(F4)*0.1)=0,"零通用格式")&"角")&IF((INT(F4*100)-INT(F4*10)*10)=0,"整",TEXT(INT(F4*100)-INT(F4*10)*10,"[DBNum2]G/通用格式")&"分"))
公式3:(将其中的B10修改为你想转换的单元格即可,已验证可用,若为零,则显示零分)
IF(B10<1,IF(B10<0.1,TEXT(INT(B10*100),"[DBNum2]G/通用格式")&"分",IF((INT(B10*100)-INT(B10*10)*10=0),TEXT(INT(B10*10),"[DBNum2]G/通用格式")&"角整",TEXT(INT(B10*10),"[DBNum2]G/通用格式")&"角"&TEXT(INT(B10*100)-INT(B10*10)*10,"[DBNum2]G/通用格式")&"分")),TEXT(INT(B10),"[DBNum2]G/通用格式"&"元")&IF((INT(B10*10)-INT(B10)*10)=0,IF((INT(B10*100)-INT(B10*10)*10)=0,"零"),IF((INT(B10*0.1)-INT(B10)*0.1)=0,"零通用格式")&"角")&IF((INT(B10*100)-INT(B10*10)*10)=0,"整",TEXT(INT(B10*100)-INT(B10*10)*10,"[DBNum2]G/通用格式")&"分"))
使用加载宏方法:(已验证可用,如果为零,则显示一个 整 字。)
“工具栏”→ “宏”→ “Visual Basic编辑器”,在“Visual Basic编辑器”中顶部选“插入”→ “模块”,在“模块”对话框中选“通用”,并在编辑区域内粘贴以下内容:
Function NtoC(n) 'n as single
Const cNum = "零壹贰叁肆伍陆柒捌玖-万仟佰拾亿仟佰拾万仟佰拾元角分"
Const cCha = "零仟零佰零拾零零零零零亿零万零元亿万零角零分零整-零零零零零亿万元亿零整整"
NtoC = ""
sNum = Trim(Str(Int(n * 100)))
For i = 1 To Len(sNum) '逐位转换
NtoC = NtoC + Mid(cNum, (Mid(sNum, i, 1)) + 1, 1) + Mid(cNum, 26 - Len(sNum) + i, 1)
Next
For i = 0 To 11 '去掉多余的零
NtoC = Replace(NtoC, Mid(cCha, i * 2 + 1, 2), Mid(cCha, i + 26, 1))
Next
End Function
然后单击“保存”,关闭“Visual Basic编辑器”,回到“工作表1”,输入函数“NtoC(单元格)”即可。
