大家好,在财务上我们经常会将小写的金额转换成大写的金额,利用EXCEL的单元格格式或是内置的函数都只能针对整数部分进行转换,如果遇到有多位小数、整数、负数等混合的数据,上面两种办法都无法实现,今天我们使用组合函数的方式来解决这一问题。

本案例中多位小数采用的是四舍五入原则。

excel自动生成大写金额公式(小数整数负数转大写的方法)-天天办公网

 

先来拆解函数公式,将输入的数字分为整数和小数部分,先看整数部分:

函数公式:TEXT(INT(ABS(A3)),”[DBNUM2]”)&”元”

函数公式的意思:先将数字转换成正数,然后取出整数部分,用TEXT函数转换成大写数字,后面添加元,遇到负数的情况,还得再处理。

excel自动生成大写金额公式(小数整数负数转大写的方法)-天天办公网

 

修改函数公式,在前面添加IF判断条件,如果数字小于0,则在前面添加“负”字。

excel自动生成大写金额公式(小数整数负数转大写的方法)-天天办公网

 

接下来是小数部分的转换

函数公式:TEXT(MOD(A3,1)*100,”[DBNUM2]0角0分”)

函数意思:使用MOD求余函数,让数字除以1得到它的余数也就是小数部分,使用函数TEXT将其转换成大写数字,面对负数的时候,这个公式也有问题,负数求余,除数应该修改为“-1”。

excel自动生成大写金额公式(小数整数负数转大写的方法)-天天办公网

 

于是修改函数公式:SUBSTITUTE(IF(A3<0,TEXT(MOD(A3,-1)*100,"[DBNUM2]0角0分"),TEXT(MOD(A3,1)*100,"[DBNUM2]0角0分")),"-","") 函数公式意思:先用IF条件判断,如果小于1的数字,则MOD函数的除数是“-1”,否则就是“1”,由于负数的MOD余数也是负数,需要用SUBSTITUTE函数将前面的符号“-”去除。 excel自动生成大写金额公式(小数整数负数转大写的方法)-天天办公网

 

观察下表格里的小数部分的转换情况,里面的“零角零分”“零角壹分”“壹角零分”都是书写不规范的,需要替换掉。

excel自动生成大写金额公式(小数整数负数转大写的方法)-天天办公网

 

有三种情况需要替换,故使用了三次“SUBSTITUTE”函数。

=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(IF(A6<0,TEXT(MOD(A6,-1)*100,"[DBNUM2]0角0分"),TEXT(MOD(A6,1)*100,"[DBNUM2]0角0分")),"-",""),"零角零分","整"),"零分","整"),"零角","零") excel自动生成大写金额公式(小数整数负数转大写的方法)-天天办公网

 

最后将整数和小数部分的函数合在一起,组成完整的函数公式“=IF(A3<0,"负","")&TEXT(INT(ABS(A3)),"[DBNUM2]")&"元"&SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(IF(A3<0,TEXT(MOD(A3,-1)*100,"[DBNUM2]0角0分"),TEXT(MOD(A3,1)*100,"[DBNUM2]0角0分")),"-",""),"零角零分","整"),"零分","整"),"零角","零")”。 函数公式比较长,理解起来其实也不难,不想理解的,直接拿去套用即可。 excel自动生成大写金额公式(小数整数负数转大写的方法)-天天办公网