Excel金额小写转大写公式

时间:2023-08-13 07:43:10 

近来转了转几个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]”)& amp;“元”,“”)&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自身的错误提示。

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

标签:Excel金额小写转大写公式
0
投稿

猜你喜欢

  • 如何对Windows Server 2008上的ARP缓存进行管理的步骤

    2022-01-31 13:57:06
  • Word中实用的6个小技巧,全会的人才算是大神,你确定你会吗?

    2023-11-08 12:31:00
  • MAC升级后Game Center无法连接怎么修复?

    2022-08-19 17:21:04
  • excel2003中常用的三大类运算符分为

    2023-04-16 14:25:24
  • Win8自带浏览器IE10第一次登入淘宝不能成功安装插件

    2023-01-10 17:41:14
  • iOS 14 资源库功能有哪些不足?

    2023-11-30 23:21:48
  • ​电脑版wps文档如何使用邮件合并功能

    2023-03-24 20:58:36
  • word文档中如何添加字体 word新增字体的设置方法

    2023-07-01 21:01:36
  • windows7系统打开摄像头功能失败的解决方法

    2022-11-20 06:33:55
  • 让Win7系统在休眠状态离线下载的小技巧

    2023-04-13 05:41:26
  • 人像拍摄模式对战:谁更出色?

    2023-06-11 10:14:10
  • Win11如何重置电脑?Win11重置电脑教程

    2023-09-01 03:13:07
  • 怎样在wps文字中为文献添加脚注

    2022-04-22 21:47:30
  • 如何屏蔽系统更新?爱思助手屏蔽系统更新教程

    2022-05-04 17:51:00
  • win10电脑玩求生之路2有时候会卡顿一下的解决方法

    2023-04-11 12:49:43
  • Win8关闭操作出现问题时的错误报告的方法

    2023-09-19 01:48:02
  • wps怎么做函数图且附带公式

    2023-12-01 12:37:15
  • Win7电脑日志怎么看?

    2022-06-13 05:43:57
  • win7自带无损分区且数据不丢失图文教程

    2023-12-10 00:47:38
  • win10能登qq但是打不开网页怎么办

    2023-06-07 21:50:23
  • asp之家 电脑教程 m.aspxhome.com