EXCEL金额小写转大写公式

4个月前 (11-27 00:29)阅读4回复0
xxhh
xxhh
  • 管理员
  • 注册排名4
  • 经验值145535
  • 级别管理员
  • 主题29107
  • 回复0
楼主

近来转了转几个Excel相关论坛,发现有部门网友在逃求数字金额转换为人民币大写的办法。出于猎奇,我在网上搜索了一番,什么VBA、加载宏,公式函数各式办法争相表态,包罗万象。但我的习惯是,只要能用公式处理的问题,勇敢不利用VBA。所以我就特殊地存眷利用公式来生成的办法,成果是用公式的办法可谓是愈加地绚烂缤纷,使人目炫缭乱。

    通过火析我搜集到的二十几个公式,发现比力牛,合适我口味的公式有三个,在此我将其列出。

    公式一:

    SUBSTITUTE(SUBSTITUTE(IF(A1《0,“负”,“”)TEXT(TRUNC(ABS(ROUND(A1,2))),“[DBNum2]”)“元”IF(ISERR(FIND(“。”,ROUND(A1,2))),“”,TEXT(RIGHT(TRUNC(ROUND(A1,2)*10)),“[DBNum2]”))IF(ISERR(FIND(“.0”,TEXT(A1,“0.00”))),“角”,“”)IF(LEFT(RIGHT(ROUND(A1,2),3))=“。”,TEXT(RIGHT(ROUND(A1,2)),“[DBNum2]”)“分”,IF(ROUND(A1,2)=0,“”,“整”)),“零元零”,“”),“零元”,“”)

    公式二:

    CONCATENATE(IF(A1《0,“负”,“”),TEXT(IF(TRUNC(A1)=0,“”,TRUNC(ABS(A1))),“[DBNum2]”),IF(INT(TRUNC(A1))=0,“”,“元”),TEXT(IF(OR(ABS(A1)《0.1,TRUNC(A1)=A1),“”,RIGHT(TRUNC(A1*10),1)),“[DBNum2]”),IF(RIGHT(TRUNC(A1*10),1)=“0”,“”,“角”),TEXT(IF(RIGHT(TRUNC(A1*100),1)=“0”,“”,RIGHT(TRUNC(A1*100),1)),“[DBNum2]”),IF(RIGHT(TRUNC(A1*100),1)=“0”,“”,“分”))

    公式三:

    IF(ROUND(A1,2)=0,“”,IF(ROUND(ABS(A1),2)》=1,TEXT(INT(ROUND(ABS(A1),2)),“[DBNum2]”)“元”,“”)IF(RIGHT(TEXT(A1,“.00”),2)*1=0,“整”,IF(RIGHT(TEXT(A1,“.00”),4)*1》=1,IF(RIGHT(TEXT(A1,“.00”),2)*1》9,“”,“零”),IF(ROUND(ABS(A1),2)》=1,“零”,“”))IF(RIGHT(TEXT(A1,“.00”),2)*1》9,TEXT(LEFT(RIGHT(TEXT(A1,“.00”),2)),“[DBNum2]”)“角”,“”)IF(RIGHT(TEXT(A1,“.00”))*1》0,TEXT(RIGHT(TEXT(A1,“.00”)),“[DBNum2]”)“分”,“整”)))

    我用差别的数值对那三个公式停止了一番测试,都到达了我的要求,至少到目前为行还没有发现上述公式存在着什么错误。上述公式对负数的处置摘取了差别的办法。公式一和公式二对负数是在其前部加上一个“负”字,而公式三则是按正数停止处置。我比力推崇公式三的体例,不是还有前提格局能够设置吗?若是负数就用前提格局来变成红色。

    我禁绝备在此对上述公式停止阐发讲解。撰写本文的目标是我也想本身来“组拆”一个所谓的通用公式。我只所以说是“组拆”而不是喊什么“开发”或者是“拼集”,是因为EXCEL的函数现成地摆在了那里,利用时就是为了到达某种目标,根据其固有的规则,将其停止有机的组合,可谓“组拆”。但是在那个过程中,也是要开动脑筋的,并不是是马马虎虎“拼集”就能胜利的。本文的目标就是想将我在“组拆”公式时的构想展示出来。

    若用法式设想语言(好比用C语言)来写一小我民币数字金额转大写金额会如何考虑呢?我想每一位数字都要考虑到。但在EXCEL中,单位格格局中有一个“特殊”格局,里面就有将小写数字转换为大写数字的格局。但要重视的是,那里转换的是数字而不是金额。所以转换出来后其实不存在“元”、“角”、“分”、“整”等在大写金额中呈现的字。但是,“元”只呈现在整数部门的后面,而小数部门只要角分两位。如许只要操纵EXCEL的“特殊”格局将数据分为整数部门、角位和分位三个部门来处置就行了。处置的挨次是先整数,再角位、再分位。

    因为要分三个部门别离处置,然后根据情状别离与“元”,“角”,“分”及“整”相毗连。毗连的体例能够利用CONCATENATE()函数,如公式二,也能够利用毗连符。而用来毗连,公式构造似乎会相对简单清晰一些,所以我抉择了用来毗连。

    固然对问题停止了合成,但需要考虑的细节相当多。

    若单位格为0或者空,输出空,制止呈现“零”、“零元”等字样。对非数字字符不停止处置,利用EXCEL本身的错误提醒。

    对负数按正数处置,再用前提格局将其转换为红色,不拟摘用“负”的形式。

  交大昂立IT学院整理

  /

0
回帖

EXCEL金额小写转大写公式 期待您的回复!

取消