Excel教程:思路超棒的中文大写数字自动显示
工作方法比工作的努力程度还重要,别让不聪明的方法压垮你。用正确的方法,让工作省心省力。
一、背景
小白是一名财务新人,刚毕业进了一家公司。领导让她负责出纳的工作,每天都有很多的报销单要填写和审核。俗话说:人在河边走,哪有不湿鞋的。财务的费用报销单上中文大写数字书写很麻烦,0-9的中文大写数字估计有80%都写不完整。更何况在录入电子数据时,每输入一次的阿拉伯数字后又要输入一遍的中文大写数字,很容易就把数字输错了。为此,她除了加班加点地赶,过程中没少挨主管训。于是,她就幻想着有没有办法简化一下,既提高工作效率又保证工作质量?
各位网友,你有什么办法能帮助她吗?
二、思路
有没有思路,关键看思路。要省心省力地办好这个事情也不是没办法的。
1、用打印代替手写。
2、让报销单的中文大写数字自动显示。
三、操作步骤
1、首先制作一个表格模板,大小与手写报销单上的表格一致。这个比较简单。如下图:
报销日期可以采用TODAY()来实时体现。
总计金额可以通过SUM函数自动计算。
2、让报销单的中文大写数字自动显示。
在单元格格式设置中有一个特殊的格式,应该有99%的人都不知道。通过对单元格进行设置就可以把常规的阿拉伯数字转化为中文大写数字,如下图所示。
通过对单元格格式设置,原来29555.4就会变成贰万玖仟伍佰伍拾伍.肆,数字是变化了,但好像少了元、角、分。所以这一招行不通。
再想想还没有其他方法可以用?
在Excel函数中有一些特殊的函数,平时找不到它们的身影,但每次出手,效果都是让人意外惊喜的。比如我们之前提到过的DateDif函数,这个函数是函数库里是找不到的,但是它确确实实存在,而且功能很强大。
今天我们再来分享一个神秘函数NumberString函数,从英文字面来理解Number是数字,String是字符串,这个函数的作用就是将小写数字转换成中文大写数字的函数:NUMBERSTRING,此函数可以方便的实现小写数字到中文大写数字的转化,而且有三个参数可以选择,以展现三种不同的大写方式。此函数仅支持正整数,不支持有小数的数字。
=NUMBERSTRING(VALUE,TYPE)
value:要转化的数字
type:返回结果的类型,有三种:1,2,3
示例:
=NumberString(1234567890,1)返回结果:一十二亿三千四百五十六万七千八百九十
=NumberString(1234567890,2)返回结果:壹拾贰亿叁仟肆佰伍拾陆万柒仟捌佰玖拾
=NumberString(1234567890,3)返回结果:一二三四五六七八九〇
它只支持正整数,不支持有小数的数字,而我们工作中的金额哪怕是整数,也要写到零角零分,怎么办呢?
不着急!
还是那句老话:有没有难度,关键看思路。
既然有小数,那我们就借它10倍,100倍嘛,不够的话1000倍,10000倍也可以借的。
比如数字是1315.73元,怎么转化成中文大写数字“壹仟叁佰壹拾伍元柒角叁分”呢?看好了。
首先,先把1315从1315.73中提取出来,很好办,Int(1315.73)=1315,Int函数是取整函数,不管小数位是多少,统统砍掉。所以Numberstring(Int(1315.73),2)。
接下来是第一位小数7,怎么来呢?Int(1315.73*10)-int(1315.73)*10=7。
最后是第二位小数3,Int(1315.73*100)-Int(1315.73*10)*10=3。
如下图所示:
问题就解决了。
以后直接在报销模板上输入数据后,核对无误,打印出来。把自己从繁琐的工作中解放出来,才有时间去思考如何为公司创造更大的价值。