重庆新华电脑学校
当前位置: 首页 > 学习园地 > 基础办公教程

Excel金额小写转大写公式

  • 时间:2012-07-18 15:21:00
  • 来源:
  • 作者:

 

  我们在网上搜索了一番,什么VBA、加载宏,公式函数各式方法争相亮相,应有尽有。对于使用公式来生成的方法,可谓是更加地灿烂缤纷,使人眼花缭乱。

 

现举例三个,供大家鉴赏。

 

  公式一:

  SUBSTITUTE(SUBSTITUTE(IF(A10“”)&TEXT(TRUNC(ABS(ROUND(A12)))“[DBNum2]”)& “”&IF(ISERR(FIND(“ROUND(A12)))“”TEXT(RIGHT(TRUNC(ROUND(A12)*10))“[DBNum2]”))&IF(ISERR(FIND(“.0”TEXT(A1“0.00”)))“”)&IF(LEFT(RIGHT(ROUND(A12)3))= “TEXT(RIGHT(ROUND(A12))“[DBNum2]”)&“IF(ROUND(A12)=0“””))零元零“”)零元“”)

 

  公式二:

  CONCATENATE(IF(A10“”)TEXT(IF(TRUNC(A1)=0“”TRUNC(ABS(A1)))“[DBNum2]”)IF(INT(TRUNC(A1))=0“””)TEXT(IF(OR(ABS(A1) 0.1TRUNC(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(A12)=0“”IF(ROUND(ABS(A1)2)=1TEXT(INT(ROUND(ABS(A1)2))“[DBNum2]”)& amp;““”)&IF(RIGHT(TEXT(A1“.00”)2)*1=0IF(RIGHT(TEXT(A1“.00”)4)*1=1IF(RIGHT(TEXT(A1“.00”)2)*19“””)IF(ROUND(ABS(A1)2)=1“”))&IF(RIGHT(TEXT(A1“.00”)2)*1 9TEXT(LEFT(RIGHT(TEXT(A1“.00”)2))“[DBNum2]”)& ““”)&IF(RIGHT(TEXT(A1“.00”))*1 0TEXT(RIGHT(TEXT(A1“.00”))“[DBNum2]”)&“”)))

 

  我们用不同的数值对这三个公式进行了一番测试,都达到了我们的要求,至少到目前为止还没有发现上述公式存在着什么错误。上述公式对负数的处理采取了不同的方法。公式一和公式二对负数是在其前部加上一个字,而公式三则是按正数进行处理。我们比较推崇公式三的方式,不是还有条件格式可以设置吗?若是负数就用条件格式来变为红色。

 

   若用程序设计语言(比如用C语言)来写一个人民币数字金额转大写金额会怎样考虑呢?我想每一位数字都要考虑到。但在EXCEL中,单元格格式中有一个特殊格式,里面就有将小写数字转换为大写数字的格式。但要注意的是,这里转换的是数字而不是金额。所以转换出来后并不存在等在大写金额中出现的字。但是,只出现在整数部分的后面,而小数部分只有角分两位。这样只要利用EXCEL特殊格式将数据分为整数部分、角位和分位三个部分来处理就行了。处理的顺序是先整数,再角位、再分位。

 

  由于要分三个部分分别处理,然后根据情况分别与相连接。连接的方式可以使用CONCATENATE()函数,如公式二,也可以使用连接符&。而用&来连接,公式结构似乎会相对简单清晰一些,所以我选择了用&来连接。

 

  虽然对问题进行了分解,但需要考虑的细节相当多。

 

  若单元格为0或者空,输出空,避免出现零元等字样。对非数字字符不进行处理,使用EXCEL自身的错误提示。

 

  对负数按正数处理,再用条件格式将其转换为红色,不拟采用XXXXXX”的形式。

 

阅读次数:

 

上一篇:使用Office 2010截图、抠图实用技巧

下一篇:Excel输入0的方法

 

热门专业排行榜

 

视觉新华

校园环境
 

咨询中心

  • 重庆新华电脑学校电话号码

    咨询电话

    023-68808588

在线咨询 免费电话