做会计凭证经常需要金额大小写转换,熟练掌握该技巧还是很必要的,今天我们就来学习下小写金额转换大写的方法。
金额小写转大写比如A1单元格中为:12345.67
1、我们先用数字格式直接转换下看看是什么效果!
倒是转换成了大写金额的汉字,但是没有元整、角、分这样的格式。
2、下面我们用公式解决下:
在B1单元格中输入公式:=TEXT(LEFT(RMB(A1),LEN(RMB(A1))-3),"[>0][dbnum2]G/通用格式元;[<0]负[dbnum2]G/通用格式元;;")&TEXT(RIGHT(RMB(A1),2),"[dbnum2]0角0分;;整")
效果如下:这样才是我们想要的标准的会计大写金额的格式
公式解析:小数点左边部分:首先用RMB将A1中的数字12345.67转化成标准的会计专用格式
=RMB(12345.67)结果为 ¥12,345.67
然后用LEFT函数提取整数部分
=LEFT(RMB(A1),LEN(RMB(A1))-3)
12345.67,总字符数减去小数点以及后两位(即3位)就是想要提取的整数部分的字符数
再将提取出来的整数部分用TEXT按照格式转换
[>0][dbnum2]G/通用格式元;[0][dbnum2]G/通用格式元;[<0]负[dbnum2]G/通用格式元;;")
小数点右边部分:道理和左边部分一样用RIGHT函数提取右边两位小数
=RIGHT(RMB(A1),2)
用TEXT按照格式转换[dbnum2]0角0分;;整
数字格式:正数;负数;零值;文本
如果是正数就按照[dbnum2]0角0分显示
如果是负数和零值就不显示文本显示整=TEXT(RIGHT(RMB(A1),2),"[dbnum2]0角0分;;整")
两部分连接起来即可显示完整的转换结果。
思考:用RMB只是为了规范数字格式,指定两位小数,那可以用round保留两位小数吗?如果A1中的数字是0,公式结果会是什么样?如果你希望数字为0时显示零元整该怎么修改公式。如果这几个问题可以解决,我相信你理解这个公式了。o(∩_∩)o 哈哈!
下面我们再来条公式:=SUBSTITUTE(SUBSTITUTE(TEXT(INT(A1),"[DBNum2][$-804]G/通用格式元"&IF(INT(A1)=A1,"整",""))&TEXT(MID(A1,FIND(".",A1&".0")+1,1),"[DBNum2][$-804]G/通用格式角")&TEXT(MID(A1,FIND(".",A1&".0")+2,1),"[DBNum2][$-804]G/通用格式分"),"零角","零"),"零分","")
别看到这么长的公式就怕,像庖丁解牛一样给他分解下:
第一段蓝色部分是处理整数部分,若金额只有整数部分显示XX元整
第二段蓝色部分处理小数部分,会计专用格式小数部分只有两位,所以分别提取每一位,用角、分的格式显示
两个substitute主要是针对两个小数位数出现0时进行替换
如A1中为123.05,如果不加substitute,则显示壹佰贰拾叁圆零角伍分
用=substitute(a1,"零角","零"),这样就会显示壹佰贰拾叁圆零伍分
如A1中为123.50,如果不加substitute,则显示壹佰贰拾叁圆伍角零分
用=substitute(a1,"零分",""),这样就会显示壹佰贰拾叁圆伍角
累啊,写了这么多,不知道解释清楚了没?用F9逐段去理解,这样学习也会提高各位对公式的理解。
平时我们都是用&连接两个字符串,今天的例子中我们学到了用&连接两个公式。
3、如果你不是批量转化,而是想直接输入大写金额,怎么办呢?
我用的是QQ输入法,搜狗输入法也支持。
转自:米宏Office