网上能查到许多将小写金额转变为中文大写金额的公式,但我发现都多少存在一些不完美。一是转换后的中文大写金额不符合规范,如123元,显示的是“壹佰贰拾叁元零角零分,0.86元,显示的是“零元捌角陆分”等;二是有些公式对金额为负数的并且含小数点的,因计算的进位关系,会出现转换错误,如-99.15,显示的是“-壹佰元捌角伍分”等。三是如果小数点后的位数超过2位,涉及到四舍五入的数字也会发生转换错误。
经过认真的分析,写出了一个比较完美的excel小写金额转变为中文大写金额的公式,目前暂未发现转换结果存在不妥的现象,请老铁们验证并提出宝贵意见
假设小写金额数字在A2,那么在B2输入公式:=IF(A2=0,"零",IF(ROUND(ABS(A2),2)<1,"",TEXT(INT(ROUND(ABS(A2),2)),"[dbnum2]")&"元")&IF(INT(ROUND(ABS(A2),2)*10)-INT(ROUND(ABS(A2),2))*10=0,IF(INT(ROUND(ABS(A2),2))*(INT(ROUND(ABS(A2),2)*100)-INT(ROUND(ABS(A2),2)*10)*10)=0,"","零"),TEXT(INT(ROUND(ABS(A2),2)*10)-INT(ROUND(ABS(A2),2))*10,"[dbnum2]")&"角")&IF((INT(ROUND(ABS(A2),2)*100)-INT(ROUND(ABS(A2),2)*10)*10)=0,"整",TEXT((INT(ROUND(ABS(A2),2)*100)-INT(ROUND(ABS(A2),2)*10)*10),"[dbnum2]")&"分"))
.
2、向下复制公式,输入不同类型的数字测试,没毛病。
这个公式写完一遍,绝对就不想写第二遍了,头晕!觉得还能用就直接粘贴走,修改一下小写金额所在的单元格位置就行了。最后发现了一个问题,对于空单元格,大写金额竟然也是“零”,算了,不改了,就这样吧。
,