Excel小写数字如何转换成中文大写?
工作中经常遇到需要将数字转换为中文大写,比如差旅费报销的时候,我们在Excel中填写好数据之后,如何自动转换成大写金额呢?
方法一 单元格格式
选中需要转换的数字,右键选择“设置单元格格式”(快捷键Ctrl+1);依次点击【特殊】—【中文大写数字】,即可。
我们来看下转换的效果:
可以发现的是,设置单元格格式这种方法仅适用于正整数的情况,如果出现负数或者小数,并不能很好地转换成中文大写。
方法二 NUMBERSTRING函数
NUMBERSTRING函数是Excel中的一个隐藏函数,可以将数据大写化。
语法:NUMBERSTRING(数字,类型)
参数二有三种类型供选择,分别是1/2/3,这里我们选择2,(大写中文),其它两种小伙伴们自行尝试。
转换效果如下所示:
上图可以看出,NUMBERSTRING函数转换效果基本同设置单元格格式法,仅能转换正整数,在遇到负数的时候会直接报错,小数则直接截断,不进行转换。
方法三 公式法
B2单元格输入以下公式:
=IF(A2<0,\"负\",\"\")&IF(TRUNC(A2)=A2,TEXT(IF(A2<0,-A2,A2),\"[DBNum2]\")&\"元整\",IF(TRUNC(A2*10)=A2*10,TEXT(TRUNC(IF(A2<0,-A2,A2)),\"[DBNum2]\")&\"元\"&TEXT(RIGHT(A2),\"[DBNum2]\")&\"角整\",TEXT(TRUNC(A2),\"[DBNum2]\")&\"元\"&IF(ISNUMBER(FIND(\".0\",A2)),\"零\",TEXT(LEFT(RIGHT(A2,2)),\"[DBNum2]\")&\"角\")&TEXT(RIGHT(A2),\"[DBNum2]\")&\"分\"))
有点长,o(╯□╰)o
转换效果:
转换效果堪称完美,正数、负数、小数皆正确转换成中文。
公式解读:
公式整体是利用IF函数进行多层次判断,判断数据是否为负、是否为整数、为1位小数还是2位小数。
第一个IF函数用于判断数值是否小于0,如果小于0,则在范围内容的最前方加一个\”负\”字;
第二个IF函数用于判断数值是否为整数,TRUNC函数直接对数字格式的数据进行截断,这里参数2未输入,默认取整;取整后的数字等于数字,代表该数字是整数;
第三个IF函数用于判断数值是否为1位小数;如果为1位小数,分别取出整数与分数部分、转换大写,并添加单位;
最后一步默认数值是2位小数,分别取整数、小数部分进行转换以及添加单位。
[DBNum2]是数字格式函数,将数字转换成中文大写。
公式整体逻辑如此,小伙伴们对照着看下就好,涉及到的函数都比较简单,只不过需要多层嵌套,理清逻辑即可。