如何让Excel中直接显示大写金额

如题所述

一、 设置单元格格式:
用这个办法能直接将阿拉伯数字转换成中文大写金额,而且操作简单。右击需要转换的单元格,在弹出的快捷菜单中选择“单元格格式”,然后在“数字”选项卡中选择“自定义”,在“类型”中写入“[DBNum2]G/通用格式"元"”后按确定即可。瞧,321是不是已经变成了“叁佰贰拾壹元”了?
可惜的是,这个办法只能处理整数,而对带有小数的数字无能为力。当然也有过朋友通过对此法进行一定的扩展而可以处理部分带小数的数字,但效果不是很理想。
二、 利用中文大写金额转换函数:
先别急,这个函数你在Excel里是找不到的,微软毕竟不是大陆公司!这个函数被收集在本站开发的“Excel扩展函数集”里,下载这个函数集,按说明进行安装后,在Excel中运用一个叫EHDXRMB()的函数就可以将任意数字转换成中文大写金额。具体情况在此就不多进行介绍了。
三、 利用公式进行转换:
所谓“自力更生,丰衣足食”,这第三种方法就是自己编写公式进行转换。虽然吝啬的小编连白开水也舍不得给我,但我还是一如既往地发扬大公无私之精神将独门密技告之天下,包学包会,不会免费再学……(小编 :STOP!再要是废话就OUT!) 1、IF函数
这是Excel里最常用到的函数之一,它的功能是执行真假值判断,根据逻辑测试的真假值返回不同的结果。其语法为IF(判断表达式,当条件值为真时返回的值,当条件值为假时返回的值)。通俗地说,就是“如果……就……否则”的语法结构。比如A1单元格内为学生成绩,我们现在要在B1单元格计算此成绩是否及格,则公式为“=IF(A1<60,"不及格","及格")”,这样一来,如果A1的数值小于60,B1就会显示“不及格”,否则就显示“及格”,是不是挺简单?IF函数是允许嵌套的,也就是说IF函数里面还可以有IF函数,这样就可以执行比较复杂的判断了。
2、TRUNC函数
这个函数可以截去指定位数的小数,如果将小数部分全部截去,就可以得到一个整数。要注意,截去是指直接舍弃,而不是四舍五入。比如A1单元格为21.147,要想在B1单元格内将它转换为只有两位小数的数字,则公式为“=TRUNC(A1,2)”,计算结果为21.14。
3、文本函数
文本函数是一系列对文本进行截取、合并、查找、转换等操作的函数。下面简单介绍一下下文中将用到的几个:
A、LEN函数,用来计算指定文本的字符数,任何字符都将被计数,包括字母、数字、标点符号甚至空格。如“LEN("Excel Home")”等于10。
B、LEFT函数,可以从文本字符串的左边开始截取指定长度的文本,如“LEFT("Excel Home",5)”等于“Excel”。
C、RIGHT函数,这个函数的功能与LEFT函数相似,只不过它是从右边开始截取文本的。如“RIGHT("Excel Home",4)”等于“Home”。
D、MID函数,这个函数还是用来截取文本的,但方式与上两种都不同,它是从指定的位数开始截取指定长度的文本。“MID("Excel Home",2,4)”等于“xcel”。
E、&函数
实际上这个函数的全称应该是CONCATENATE,只不过这个名字太长不容易记住,所以干脆就叫做&.函数,它的功能是将几个文本连结起来。比如“"电脑"&"界"&"应用"&"文萃"”等于“电脑界应用文萃”。
咳咳——(笔者一阵咳嗽),大家看到这里可能要觉到有些枯燥了,但所谓“磨刀不误砍柴功”,如果你不先掌握这些基础知识,待会儿我开始讲如何转换中文大写金额时,你可要傻眼了!不过也别急,就剩下一个函数要讲解了!好了,继续!
F、TEXT函数
这个函数其实也是一个文本函数,但因为在转换中文大写金额时这是一个起关键作用的函数,而在Excel帮助中又未详述,所以要着重介绍一下。
TEXT函数可以将一数值转换为按指定数字格式表示的文本,比如是否带千分号,显示几位小数,是否带货币符号,还有日期,时间等等。当然,最重要的是它可以将数值转换为中文大写,虽然不能直接将阿拉伯数字转换为中文大写金额,但已经足够了。
TEXT的语法是TEXT(目标数值,格式),这个格式的种类及写法与单元格格式中数字选项卡中显示的相同。如TEXT(100.1,"0.00")=100.10。注意,任何数值只要被TEXT函数转换过,不单单是显示格式被改变了,内容也彻底变成了文本,不能再参与计算了。要将数值转换为中文大写,应该在函数中用“[DBNum2]”格式参数,这是在Excel帮助中没提到的一个参数,但却非常实用!
好了,刀我们就先磨到这里,下面我们开始砍柴!
首先,我们要分析一下计算要求——在进行较复杂的公式创建之前,这是非常必要的一个步骤,就好像写论文前要先列好提纲一样,一定要先有好的规划,才能有好的解决方案。我们已经知道,TEXT函数只能简单地把数字转换为中文大写,而且只适合于整数,这也就是说,需要我们将目标数值分成元、角、分三段来转换,然后再用&函数拼接在一起。标准的货币型数值包含两位小数,因为目标数值是未知的,所以我们首先要将要转换的数值转换成"0.00"的格式,比如“588.1”,我们要把它转换为“588.10”,这样才便于后面进行分段转换。还有一点要注意的地方是目标数值可能不只两位小数,这时我们就要截掉多余位数的小数(是截掉,可不是取整哟,不然的话,1.998可要变成2.00了!)
下面进行分段转换,我们先假设一个某工作表中C2单元格中存在一个需要转换的目标数值:5188.15,则各段计算公式分别为:
各部分转换值

整数部分
=TEXT(TRUNC(C2),"[DBNUM2]")&"元"

角位
=TEXT(MID(C2,LEN(TEXT(TRUNC(C2,2),"0.00"))-1,1),"[DBNUM2]")&"角"

分位
=TEXT(RIGHT(TEXT(TRUNC(C2,2),"0.00"),1),"[DBNUM2]")&"分"

角分位
=D6&D7

我们把以上公式分别输入到D5到D9单元格中,计算结果为:
各部分转换值
单元格

整数部分
伍仟壹佰捌拾捌元
D5

角位
壹角
D6

分位
伍分
D7

角分位
壹角伍分
D8

会不会觉得公式太长?对了,Excel的函数都是允许嵌套的,但无论怎么嵌套,都有其固定的计算顺序——与四则混合运算的计算顺序一样,先算最里头的一个括号,先乘除,后加减(逻辑函数例外)。按照这个规则,再加上我在前面已经把要用到的函数一一为大家进行了介绍,相信稍稍动动脑筋就能明白。万一暂时难以理解也别着急,待一会儿在Excel里亲自试试就明白了。
好了,已经成功一半了,下面的工作是把分段转换好的中文大写金额连结起来,可别小看这个过程,这比刚才的工作要难得多!
对于需要进行转换的数值,可能会有如下几种类型:
一、 零
二、 整数
三、 既有小数部分又有整数部分的有理数
1、 只有一位小数
2、 两位以上小数,但第一位为零
四、 纯小数
1、 只有一位小数
2、 两位以上小数,但第一位为零
对于不同的类型,连结方式是不同的,不然就会出现“零元”、“零角”、“零分”以及其他一些不符合中文大写金额规则的连结结果。那样的话就前功尽弃了。所以我们在分段转换时不必考虑的这些问题在连结的时候就要好好考虑清楚了。现在IF函数要大派用场了,只有它才能进行严密的判断,并根据判断的情况进行相应的连结。
以目标数值5188.1在C2单元格为例,我们先列表说明要进行哪些判断。在以后需要进行较复杂的判断工作之前,建议大家也能这样做,这样有助于保持清醒的头脑以组织条理分明的语句。
判断公式

是否为零
=IF(TRUNC(C2,2)=0,TRUE,FALSE)

是否只有整数部分
=IF(TRUNC(C2,2)=TRUNC(C2),TRUE,FALSE)

是否没有整数部分
=IF(TRUNC(C2)=0,TRUE,FALSE)

是否只有角位
=IF(RIGHT(TEXT(TRUNC(C2,2),"0.00"),1)="0",TRUE,FALSE)

是否只有分位
=IF(MID(C2,LEN(TEXT(TRUNC(C2,2),"0.00"))-1,1)="0",TRUE,FALSE)

我们把以上公式分别输入到D11到D15单元格中,判断结果如下表所列:
目标数值:5188.1 判断结果
单元格

是否为零
FALSE
D11

是否只有整数部分
FALSE
D12

是否没有整数部分
FALSE
D13

是否只有角
TRUE
D14

是否只有分
FALSE
D15

TRUE表示判断结果为真,FALSE则为假。
好了,最后,我们要综合以上各项判断结果来写出这个连结的公式:=IF(D11,"数值为零",IF(D12,D5&"整",IF(D13,IF(D14,D6&"整",IF(D15,D7,D8)),IF(D14,D5&D6&"整",IF(D15,D5&"零"&D7,D5&D8)))))。
好了,现在往C2单元格中输入任意一个数字,看看是否能正确转换出中文大写金额来?本文的侧重点在于告诉大家用怎样的思路来解决问题,所以讲解过程可能有些繁杂,而且整个转换过程用到了十几个单元格一步一步进行求解。这在实际工作中当然是不必要的。不过在对复杂问题进行计算时,用到的公式数量是于公式复杂程度成反比的,在大家对公式的运用还不是那么熟练的时候,多用几个单元格来创建公式也无妨,只要思路正确,最终结果肯定错不了!当逐渐掌握公式及各种函数的用法后,就可以用最少的单元格(也就是最复杂的公式)来快速完成计算要求了。
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-11-28
有一个隐藏函数可以使阿拉伯数字改为大写金额,你可以试一下,如果A1中输入金额数字,在B1中输入“=IF(ISERROR(FIND(".",A1)),NUMBERSTRING(INT(A1),2)&"元整",IF(ISERROR(NUMBERSTRING(MID(A1,FIND(".",A1)+2,1),2)),NUMBERSTRING(INT(A1),2)&"元"&NUMBERSTRING(MID(A1,FIND(".",A1)+1,1),2)&"角整",NUMBERSTRING(INT(A1),2)&"元"&NUMBERSTRING(MID(A1,FIND(".",A1)+1,1),2)&"角"&NUMBERSTRING(MID(A1,FIND(".",A1)+2,1),2)&"分"))”。
整数部分最大为15位时正确
结果直接舍去小数点后二位本回答被网友采纳
第2个回答  2010-04-02
在“金额(大写)”右边单元格输入如下内容:=IF(ABS(F9)<0.005,"",IF(F9<0,"负",)&IF(INT(ABS(F9)),TEXT(INT(ABS(F9)),"[dbnum2]")&"元",)&IF(INT(ABS(F9)*10)-INT(ABS(F9))*10,TEXT(INT(ABS(F9)*10)-INT(ABS(F9))*10,"[dbnum2]")&"角"
第3个回答  2010-04-02
在单元格右键-设置单元格-数字-特殊-中文大写数字
第4个回答  2010-04-02
是会计的大写吗?
相似回答