我当时第一次遇到这事儿,真是一脸懵。领导发来个模板,赫然写着大写金额,我盯着Excel表格里的小写数字,再看看打印预览那张纸上空空的大写栏,脑子里全是问号。难道真要我一个字一个字敲进去?别开玩笑了,万一数字改了,我又得从头来一遍?那效率得低到尘埃里去!
于是乎,就像所有遇到问题的人一样,我开始摸索、开始搜索。嘿,你别说,Excel这东西,虽然有时候看着挺笨重,但人家藏着的宝贝函数可真不少!这不,第一个跳出来的解决方案,就是用公式。
Excel里专门有个函数,就干这个 Converting numbers into Traditional Chinese characters for financial purposes, sort of. 它叫什么来着?哦对,NUMBERSTRING
。这名字听着就透着一股子技术范儿,是不是?别被它唬住了,用起来没那么玄乎。它的基本骨架是这样的:=NUMBERSTRING(数字, 类型)
。关键就在那个“类型”参数,它决定了转换出来的格式是怎样的。
一般来说,咱们要的是那种正儿八经的,带“元”“角”“分”的,像写支票那样的格式,对不对?比如123.45,得变成“壹佰贰拾叁元肆角伍分”。对应到NUMBERSTRING
里,那个“类型”参数就得填2。没错,就是个阿拉伯数字“2”。所以,如果你想把A1单元格里的数字转换成大写金额,公式就是简单的=NUMBERSTRING(A1, 2)
。
试试看!你在B1单元格输入这个公式,A1里随便填个数字,比如123.45,你看B1单元格,瞬间就变成了“壹佰贰拾叁元肆角伍分”。是不是有种发现新大陆的感觉?我第一次看到这结果的时候,简直要拍案叫绝了!天呐,解放双手啊!
当然,NUMBERSTRING
还有别的类型,比如类型1,它会把数字转成那种不带单位的普通大写数字,比如123会变成“一百二十三”,不带“元”啊“角”啊啥的。但平时最常用、最实用,而且最能解决财务报销那种需求的,绝对是类型2。这个要牢牢记住!
不过呢,公式法虽然好,把数字转换成了文本字符串,放到另一个单元格里显示。但有时候,你可能不希望结果出现在另一个单元格,你就想让原来那个单元格,里面的数字小写输进去,但它自己显示出来就是大写金额的样式。这就引出了另一种更“高级”一点儿,或者说更“隐蔽”一点儿的方法——单元格格式。
这种方法,说白了是一种视觉上的“障眼法”。单元格里存的数字本身并没有变,还是你输入的小写数字,但Excel给你显示出来的样子,却变成了大写金额。这感觉就像是给数字穿了件华丽的袍子,里面还是它自己,但外面看着完全不一样了。
怎么做到呢?这个就稍微需要一点点“魔法代码”了。选中你需要设置的单元格(或者区域),右键,“设置单元格格式”,然后切换到“数字”选项卡,选择“自定义”。在那个“类型”框里,你就能输入各种奇奇怪怪的代码,来控制数字的显示方式。而把数字变成大写金额的关键代码,藏在一种叫做[DBNum2]
的东西里。
这个[DBNum2]
,就是告诉Excel,“用第二种数据库数字格式显示,也就是大写金额那种”。它后面通常会跟上一些表示单位和格式的符号。最常用的完整格式代码,你想让它显示成大写金额,并且带小数点后两位的“角”和“分”,就像这样:[DBNum2]G/通用格式元;[DBNum2]G/通用格式元
。哎呀,看着有点晕是不是?
别急,我解释一下。那个分号;
是分隔符,在自定义格式里,分号前是正数的格式,分号后是负数的格式。不过咱们做金额转换,负数的情况比较少,通常正负数用一样的格式就成。[DBNum2]
是核心,表示大写。G/通用格式
表示以通用数字格式显示数字本身(比如123就还是123,不是123.00),然后跟上“元”。这样123就显示成“壹佰贰拾叁元”。那“角”和“分”呢?这个格式代码默认就会处理小数部分,把第一位小数转成“角”,第二位转成“分”。比如输入123.45,它就会自动识别并显示成“壹佰贰拾叁元肆角伍分”。
所以,把那个格式代码[DBNum2]G/通用格式元;[DBNum2]G/通用格式元
复制粘贴到自定义格式的“类型”框里,然后点确定。好了!现在你往那个单元格输入1000,它立刻就显示成“壹仟元”;输入58.6,它就显示成“伍拾捌元陆角”;输入20.05,就显示“贰拾元零伍分”。是不是很神奇?而且你看单元格上方的编辑栏,显示的依然是你最初输入的数字,比如20.05。这也就是我说的“障眼法”,数据本身没变,变的只是给你看的样子。
这两种方法,公式法和格式法,各有千秋。公式法直接生成大写文本,你可以复制粘贴到其他地方,或者用在其他需要文本格式的计算里。比如你需要把大写金额填到另一个完全不相干的文本框里,那就得用公式法。格式法则是在原单元格显示大写,数据本身还是数字,可以继续进行数学计算。如果你的表格就是用来显示金额的,不需要把大写文本提取出来,那用格式法就更干净利落。不用多一列放公式的结果,表格看起来更整洁。
就我个人经验来说,如果是填那种制式表格,我更倾向于用格式法。 കാരണം എന്താണെന്നോ?因为它不改变单元格的数值类型,对后续可能的计算不会产生干扰。而且表格看着干净,输小写改数字方便,显示自动变大写,省心。当然,如果我需要把大写金额作为纯文本用到别的地方,比如生成一个报告或者别的什么文档,那公式法就大显身手了。
还有些时候,你可能还会听到有人说什么用VBA写个宏啊,或者装个什么第三方插件啊。那些确实也能实现,甚至功能可能更强大灵活。但对于我们大多数人来说,特别是临时抱佛脚处理个文件,学这两种Excel自带的、无需任何额外安装的方法,就足够应付绝大部分场景了。简单、直接、有效,而且不怕在别的电脑上打不开(因为不依赖宏或插件)。
你看,一个小小的需求,“数字转大写”,Excel就提供了至少两种内置的、靠谱的解决方案。从最初的头疼、犯愁,到动手去研究、去尝试,再到最终找到那几个关键的函数名、格式代码,那种茅塞顿开的喜悦,简直是每个Excel使用者都会经历的成长瞬间。所以下次再遇到需要填大写金额的表格,别慌,别再手动一个字一个字敲了,动动脑筋,用用这两种方法,公式=NUMBERSTRING(A1, 2)
,或者格式[DBNum2]G/通用格式元;[DBNum2]G/通用格式元
,分分钟搞定!别让这种小事儿耽误了你宝贵的时间和精力。生活已经够复杂了,能交给工具的,咱就痛快地交给工具吧!
发表回复