电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

EXCEL,数字变大写公式--精选文档

7页
  • 卖家[上传人]:ni****g
  • 文档编号:470080839
  • 上传时间:2023-12-18
  • 文档格式:DOC
  • 文档大小:19.50KB
  • / 7 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1、近来转了转几个EXCEL相关论坛,发现有部分网友在寻求数字金额转换为人民币大写的方法。出于好奇,我在网上搜索了一番,什么VBA、加载宏,公式函数各式方法争相亮相,应有尽有。但我的习惯是,只要能用公式解决的问题,坚决不使用VBA。所以我就特别地关注使用公式来生成的方法,结果是用公式的方法可谓是更加地灿烂缤纷,使人眼花缭乱。通过分析我收集到的二十几个公式,发现比较牛,适合我口味的公式有三个,在此我将其列出。公式一:SUBSTITUTE(SUBSTITUTE(IF(A10,负,)&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(A10,负,

      2、),TEXT(IF(TRUNC(A1)=0,TRUNC(ABS(A1),DBNum2),IF(INT(TRUNC(A1)=0,元),TEXT(IF(OR(ABS(A1)=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)*19,零),IF(ROUND(ABS(A1),2)=1,零,)&IF(RIGHT(TEXT(A1,.00),2)*19,TEXT(LEFT(RIGHT(TEXT(A1,.00),2),DBNum2)&角,)&IF(RIGHT(TEXT(A1,.00)*10,TEXT(RIGHT(TEXT(A1,.00),DBNum2)&分,整)我用不同的数值对这三个公式进行了一番测试,都达到了我的要求,至少到目前为止还没有发现上述公式存在着什么错误。上述公式对负数的处理采取了不同的方法。公式一和公式二对负数是在其前部加上一个“负”字,而公式三则是按正数进行处理。我比较推崇公式三的方式,不是

      3、还有条件格式可以设置吗?若是负数就用条件格式来变为红色。我不准备在此对上述公式进行分析解说。撰写本文的目的是我也想自己来“组装”一个所谓的通用公式。我只所以说是“组装”而不是叫什么“开发”或者是“拼凑”,是因为EXCEL的函数现成地摆在了那里,使用时就是为了达到某种目的,按照其固有的规则,将其进行有机的组合,可谓“组装”。但是在这个过程中,也是要开动脑筋的,并非是随随便便“拼凑”就能成功的。本文的目的就是想将我在“组装”公式时的思路展现出来。若用程序设计语言(比如用C语言)来写一个人民币数字金额转大写金额会怎样考虑呢?我想每一位数字都要考虑到。但在EXCEL中,单元格格式中有一个“特殊”格式,里面就有将小写数字转换为大写数字的格式。但要注意的是,这里转换的是数字而不是金额。所以转换出来后并不存在“元”、“角”、“分”、“整”等在大写金额中出现的字。但是,“元”只出现在整数部分的后面,而小数部分只有角分两位。这样只要利用EXCEL的“特殊”格式将数据分为整数部分、角位和分位三个部分来处理就行了。处理的顺序是先整数,再角位、再分位。由于要分三个部分分别处理,然后根据情况分别与“元”,“角”

      4、,“分”及“整”相连接。连接的方式可以使用CONCATENATE()函数,如公式二,也可以使用连接符。而用来连接,公式结构似乎会相对简单清晰一些,所以我选择了用来连接。虽然对问题进行了分解,但需要考虑的细节相当多。若单元格为0或者空,输出空,避免出现“零”、“零元”等字样。对非数字字符不进行处理,使用EXCEL自身的错误提示。对负数按正数处理,再用条件格式将其转换为红色,不拟采用“负XXXXXX”的形式。整数加“元”,若是纯整数,就只处理整数且加“整”,不再处理小数部分。若是纯小数,放在小数部分处理,不单独列出处理。角为0且分不为0,应输出“零”,只有角的就加“整”如果有尾数,即有3位以上小数(这种情况也许很少发生,但作为一个“通用”公式,却不能不考虑这种情况)。则有两种处理方式,一是截尾,另一则是四舍五入。由于两种方式的排它性。决定做两个公式。如果数值小于分,截尾公式输出空,而四舍五入公式则要考虑舍入问题。若有舍入输出分,没有则输出空。根据这个思路,我“组装”了下面两个公式。公式四:IF(A1=0,IF(ABS(A1)0.995,TEXT(INT(ROUND(ABS(A1),2),D

      5、BNum2)&元)&IF(RIGHT(TEXT(A1,.00),2)*1=0,IF(ABS(A1)0.005,整),TEXT(IF(ABS(A1)0.095,LEFT(RIGHT(TEXT(A1,.00),2),dbnum2)&IF(LEFT(RIGHT(TEXT(A1,.00),2)*1=0,角)&IF(RIGHT(TEXT(A1,.00)*1=0,整,TEXT(RIGHT(TEXT(A1,.00),dbnum2)&分)公式五:IF(A1=0,IF(ABS(A1)1,TEXT(TRUNC(ABS(A1),DBNum2)&元)&IF(RIGHT(TRUNC(A1*100),2)*1=0,IF(ABS(A1)0.01,整),IF(ABS(A1)0.1,TEXT(RIGHT(TRUNC(A1*10),dbnum2)&IF(RIGHT(TRUNC(A1*10)*1=0,角)&IF(RIGHT(TRUNC(A1*100)*1=0,整,TEXT(RIGHT(TRUNC(A1*100),dbnum2)&分)公式四是四舍五入公式,公式五则是截尾公式。两个公式的结构其实是一样的,只是使用了不同的函数。

      6、下面用公式四来说明。TEXT(INT(ROUND(ABS(A1),2),DBNum2)&元用来处理整数部分,考虑到纯小数及舍入问题,增加一个判断ABS(A1)0.995,用0.995,即保证了正常的舍入,又避免了出现0.9945也进行舍入的错误。用RIGHTB(TEXT(A1,.00),2)*1=0来判断是不是纯整数,是就输出“整”,后面就不用处理了。因为TEXT函数输出的是文本值,所以在这里有两种处理方法,一是就是本式,二是RIGHTB(TEXT(A1,.00),2)=00。LEFT(RIGHT(TEXT(A1,.00),2)是取出角位数,增加一个判断ABS(A1)0.095是为了在只有分票的情况下角位避免出现“零”的字样,0.095也是考虑了尾数的舍入问题。IF(LEFT(RIGHT(TEXT(A1,.00),2)*1=0,角),角位是0输出空,否则输出“角”。同样,这里的判断表达式也可改为LEFT(RIGHT(TEXT(A1,.00),2)=0用RIGHT(TEXT(A1,.00)取出分位数,分位为零输出“整”,否则输出分位数。对于负数,如果一定要用“负XXXXXX”的形式,则直

      7、接在第二个判断前加上“IF(A10,负,)&”。还有网友提出来说万位为零时不输出零不符合规范,为此我专门去查了一下相关规定。结果如下:大写金额中间有“0”时,大写金额要写“零”字;小写金额中间连续有几个“0”时,大写金额中间可以只写一个“零”字;小写金额万位或元位是“ 0”,或者数字中间连续有几个“0”,万位、元位也是“0”,但千位、角位不是“0”时,大写金额中可以只写一个“零”字,也可以不写“零”字。所以上述公式在当万位为零而千位不为零时,以不输出零的方式处理,应该是符合规范的。也许正是EXCEL采取这种样式的原因。当然,如果遵照习惯非要加上这个零字也不是不可能。只不过要增加一点公式复杂度罢了。在一个数中,万会出现几次?不管是万、十万、百万、千万,这个万就出现一次,如果是万万则是亿,如果是万亿又是兆,万兆呢?已经超出EXCEL的处理能力了。所以答案是万字在大写金额中只可能出现一次,且只出现在整数部分。即然是这样,用SUBSTITUTE()函数就能解决问题。即判断当万位为零而千位不为零时,用“万零”来替换“万”,其它情况下不进行替换。因为EXCEL只有在这种情况下不会输出“零”。在四舍

      8、五入公式中,因为还要考虑尾数舍入问题,判断使用了四舍五入函数ROUND(),公式四的输出整数的部分公式改为:IF(AND(RIGHT(INT(ROUND(ABS(A1),2)/10000)=0,RIGHT(INT(ROUND(ABS(A1),2)/1000)0),SUBSTITUTE(TEXT(INT(ROUND(ABS(A1),2),DBNum2),万,万零),TEXT(INT(ROUND(ABS(A1),2),DBNum2)而截断公式不用考虑尾数舍入问题,直接用TRUNC()取万位和千位数来判断。相应地公式五的整数部分亦改为:IF(AND(RIGHT(TRUNC(ABS(A1)/10000)=0,RIGHT(TRUNC(ABS(A1)/1000)0),SUBSTITUTE(TEXT(TRUNC(ABS(A1),DBNum2),万,万零),TEXT(TRUNC(ABS(A1),DBNum2)为了一个我认为不是很必要的“零”字使公式臃肿了许多,而我喜欢简单清晰的公式,所以不愿在正式公式中采用。自认为这两个公式已经考虑了许多的细节,但我也不敢保证没有挂一漏万。现在暂时告一段落,若以后发现问题再来修改了。

      《EXCEL,数字变大写公式--精选文档》由会员ni****g分享,可在线阅读,更多相关《EXCEL,数字变大写公式--精选文档》请在金锄头文库上搜索。

      点击阅读更多内容
    最新标签
    监控施工 信息化课堂中的合作学习结业作业七年级语文 发车时刻表 长途客运 入党志愿书填写模板精品 庆祝建党101周年多体裁诗歌朗诵素材汇编10篇唯一微庆祝 智能家居系统本科论文 心得感悟 雁楠中学 20230513224122 2022 公安主题党日 部编版四年级第三单元综合性学习课件 机关事务中心2022年全面依法治区工作总结及来年工作安排 入党积极分子自我推荐 世界水日ppt 关于构建更高水平的全民健身公共服务体系的意见 空气单元分析 哈里德课件 2022年乡村振兴驻村工作计划 空气教材分析 五年级下册科学教材分析 退役军人事务局季度工作总结 集装箱房合同 2021年财务报表 2022年继续教育公需课 2022年公需课 2022年日历每月一张 名词性从句在写作中的应用 局域网技术与局域网组建 施工网格 薪资体系 运维实施方案 硫酸安全技术 柔韧训练 既有居住建筑节能改造技术规程 建筑工地疫情防控 大型工程技术风险 磷酸二氢钾 2022年小学三年级语文下册教学总结例文 少儿美术-小花 2022年环保倡议书模板六篇 2022年监理辞职报告精选 2022年畅想未来记叙文精品 企业信息化建设与管理课程实验指导书范本 草房子读后感-第1篇 小数乘整数教学PPT课件人教版五年级数学上册 2022年教师个人工作计划范本-工作计划 国学小名士经典诵读电视大赛观后感诵读经典传承美德 医疗质量管理制度 2
    关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
    手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
    ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.