后来才知道,Excel这玩意儿,它居然自带功能,或者说,有招儿能办这事儿!救命啊简直!第一个知道的法子,就是那个叫NUMBERSTRING函数的东西。听着挺官方,用起来嘛… 得适应适应。它的语法是 NUMBERSTRING(数值, 类型)
。你看,就两个参数,数值
就是你要变大写的那个数字,比如你A1单元格里存了个金额,这里就写A1。类型
呢,就是告诉你你想变哪种格式的大写,这参数贼重要,错了就南辕北辙。类型1是那种简陋的数字转文字,像把123变成“一百二十三”,不是咱们财务上要的人民币大写格式。类型2和类型3才是正主儿。类型2是把数字转成带小数的,像把1234.56变成“壹仟贰佰叁拾肆点伍陆”这种。类型3呢,就是纯大写的中文数字,像把1234.56变成“壹仟贰佰叁拾肆”,小数部分直接就没了,四舍五入什么的压根儿没有。
问题来了,咱们财务上要的人民币大写格式,是要带上“元”“角”“分”,有时候还有“整”或者“正”字结尾,像“壹仟贰佰叁拾肆元伍角陆分”这种。NUMBERSTRING函数
直接出不来这种格式!它只负责把数字本身变成大写汉字,后面那些单位啊、符号啊,它都不管。所以啊,想用NUMBERSTRING函数搞定人民币大写,你得在外面再套一层处理,或者用它的类型2,再用别的函数(比如 LEFT
,MID
,RIGHT
,FIND
,SUBSTITUTE
,IF
,TEXT
等等)拼拼凑凑,判断小数点在哪儿,前面是几位,后面是几位,有没有角有没有分,末尾是零是不是要加“整”… 天呐,想想就头大!对新手来说,这套函数组合拳下来,比数字本身还难懂,公式能写出小山高,改起来找个错都得半天,眼睛都看花了。就为了这么个格式,搭进去半小时甚至一小时,效率呢?简直是龟速!而且,这玩意儿不同版本、不同区域设置的Excel,表现可能还不一样,踩坑踩得你怀疑人生。
当然,除了NUMBERSTRING函数,还有更高阶的玩法——VBA!VBA,就是Excel那个宏编程,听起来挺高级,像黑客干的事儿。别一听编程就害怕,其实很多时候,咱不需要自己从头写代码,网上有很多现成的代码段,就是所谓的自定义函数(User Defined Function,简称UDF)。这玩意儿就像Excel自带函数(比如SUM
、AVERAGE
)的兄弟,只不过它是用户自己创建的。大神们把转换人民币大写的代码写好了,测试好了,你只需要打开你的Excel,按Alt+F11打开VBA编辑器,插入一个新的模块,然后把网上找的那个代码段复制粘贴进去,保存一下(最好保存成启用宏的工作簿,或者放在你的个人宏工作簿里,这样以后所有文件都能用),关掉编辑器。然后回到你的表格里,就像用SUM
函数一样,直接在单元格里输入等号,后面跟上你保存的那个自定义函数名字(比如有的叫RMB
,有的叫大写金额
),括号里放你的数字单元格引用,回车,嘿!奇迹就出现了!
这种自定义函数,最大的好处就是灵活、而且转换出来的格式贼规范!你可以找到那种专门转换成人民币大写格式的代码,它会聪明地判断小数点位置,自动加上“元”“角”“分”,如果分是零还会加上“整”字,金额小到几分钱,大到几千万、上亿,它都能搞定。我之前就找过一段这样的VBA代码,保存在我的个人宏工作簿里,每次做报销单、做回款记录,金额那一栏,再也不用费劲巴拉地手写或者组合函数了,直接一个自定义函数套上去,比如 =RMB(A1)
,哗啦一下,规范的人民币大写金额就出来了,又快又准!再也不用担心把“叁”写成“伍”那种低级错误了,或者因为“零”的位置不对被财务打回来。那种感觉,简直是防止篡改,省心又省力!这VBA自定义函数,简直救我狗命!
不过,话说回来,不管是NUMBERSTRING函数(以及它复杂的外衣组合)还是VBA自定义函数,里头都有坑!比如小数点怎么处理?数字末尾是零怎么办?特别是几毛几分钱那种金额,或者整数金额后面怎么加个“整”字?有时候金额特别大,好几百万,甚至上亿,函数或者代码能不能正确识别“亿”和“万”之间的关系?还有负数呢?负数的大写怎么写?这些细节,直接关系到你的大写金额对不对,差一点点都不行,特别是正规的财务单据,审核的时候,眼尖的会计或者审计人员一眼就看出来了。我记得有一次,一个几千块钱的金额,用一个不是特别完善的自定义函数转的,结果几毛钱的部分没处理好,少了个“零”字,或者小数点后面的零没处理好,差了几分钱,被打回来重新改,那叫一个尴尬!所以啊,网上找VBA代码也好,自己琢磨NUMBERSTRING函数组合也好,一定要仔细测试!拿各种数字测一遍,整数、小数、几毛几分、带零的、不带零的、大额、小额、甚至负数,确保它能应付所有可能出现的情况,出来的人民币大写金额是准确无误、符合规范的。这可不是闹着玩的,跟钱打交道,严谨是刻在骨子里的!
想想以前,为了一个AMOUNT IN WORDS(外国人管这个叫金额大写),或者说人民币大写,得耗费多少脑细胞和时间,写个大写金额跟练书法似的,生怕写错一个笔画、漏掉一个字。现在呢?指尖轻点,一个函数的事儿。虽然背后可能是复杂的代码或者函数逻辑,但对于我们使用者来说,就是这么方便。这种感觉,就像你手里握着一把瑞士军刀,虽然可能只用它开了个罐头,但你知道它能干很多事儿,心里就踏实。Excel里数字转换为大写,看着是个小技巧,但在需要它的时候,在那些堆满了发票、单据,需要核对财务金额的时刻,它就是解决大麻烦、提升效率的关键。特别是跟钱打交道,严谨无误是第一位的,能让机器帮你完成这种重复又重要的工作,太省心了。所以,别小看这些函数、这些VBA代码,它们就是咱们工作中的隐形助手,关键时刻,真能顶大用!花点时间去学习、去找到适合自己的方法,学会用好它们,效率翻倍不说,心里那个踏实劲儿,嘿,无价!记住,无论是NUMBERSTRING函数,还是VBA自定义函数,找到适合自己的,测试好,然后,享受效率飞升的感觉吧!毕竟,谁想把宝贵的时间浪费在那些枯燥又容易出错的手工活上呢?
发表回复