微信公众号 【EXCEL880】 QQ群【341401932】
课程咨询 加我微信EXCEL880B 试学网址http://v.excel880.com
课程咨询 加我微信EXCEL880B 试学网址http://v.excel880.com
人民币阿拉伯数字转换为大写汉字
前几天又被问到人民币大写,正好想起来以前收集的这个公式,当时是做一个空调安装报价系统,所以在网上找到了这个公式,公式看起来很复杂,不过结构并不复杂,有兴趣的可以研究下,不过学会用还是很简单的
最近看到个短的 实测也很好 就用这个吧
=IF(E1<0,"负","")&TEXT(INT(ABS(E1)),"[dbnum2]")&"元"&SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(TEXT(RIGHT(E1*100,2),"[dbnum2]0角0分"),"零角零分","整"),"零分","整"),"零角","零")
老版公式如下:
="大写:"&IF(ABS(E1)<0.005,"",IF(E1<0,"负",)&IF(INT(ABS(E1)),TEXT(INT(ABS(E1)),"[dbnum2]")&"元",)&IF(INT(ABS(E1)*10)-INT(ABS(E1))*10,TEXT(INT(ABS(E1)*10)-INT(ABS(E1))*10,"[dbnum2]")&"角",IF(INT(ABS(E1))=ABS(E1),,IF(ABS(E1)<0.1,,"零")))&IF(ROUND(ABS(E1)*100-INT(ABS(E1)*10)*10,),TEXT(ROUND(ABS(E1)*100-INT(ABS(E1)*10)*10,),"[dbnum2]")&"分","整"))
在实际用的时候 先把这个公式复制到记事本里,比如你要将A1的数字转化成人民币大写,那就用记事本的替换功能将E1替换成A1,在将公式复制粘贴到要显示大写的单元格即可
应用的结果示范如下
另外这个公式是个引子,需要的最终格式和这有点不一样,那也可以根据这个公式做一些简单改变,比如说总是要得到要得到 *元*角*分的样子 那就写成
="人民币"&IF(ABS(AG10)<0.005,"",IF(AG10<0,"负",)&IF(INT(ABS(AG10)),TEXT(INT(ABS(AG10)),"[dbnum2]")&"元",)&IF(INT(ABS(AG10)*10)-INT(ABS(AG10))*10,TEXT(INT(ABS(AG10)*10)-INT(ABS(AG10))*10,"[dbnum2]")&"角",IF(INT(ABS(AG10))=ABS(AG10),"零角",IF(ABS(AG10)<0.1,,"零")))&TEXT(ROUND(ABS(AG10)*100-INT(ABS(AG10)*10)*10,),"[dbnum2]")&"分")
注意这里目标单元格时AG10,结果如下
人民币伍万肆仟零叁拾元零角零分 | 54030 |