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”的形式。


猜你喜欢
- 在Word文档中有一个冻结窗格功能,我们可以使用该功能冻结首行或者是表格前几行和前几列,方便我们进行查看和浏览。比如在一个全校学生的体侧表格
- 打印机是家庭或者办公常用的设备之一。win10系统越来越普及,查看打印机的IP地址是打印之前首要知道的,这样才好连接打印机。可是最近很多用户
- word2016中怎么使用格式刷?word2016中可以使用格式刷批量统一文字格式,该怎么使用格式刷呢?下面我们就来看看word2016格式
- win10远程连接切换用户每次都要输入登录密码非常的郁闷,很多用户会感觉很烦,但是不知道怎么设置解决这个问题,下面来一起看看详细的解决教程吧
- 在设计PPT文档时,有很多时候罗列文字来说明不利于吸引听众的注意力,但如果能够巧妙的把文字信息转换为SmartArt图形则会起到很好的效果,
- win11怎么取消翻盖开机?windows系统如果是笔记本是可以设置自动开机的,比如开盖就可以触发自动开机,下面我们就来看看windows1
- 这篇文章主要介绍了笔记本电脑怎么重装系统windows7 笔记本重装windows7系统步骤图解的相关资料,需要的朋友可以参考下本文详细内容
- Win7操作系统下,我们总是喜欢不断的更换喜欢的主题,但更改完主题后,图标总是会跟着变动,这看着让人很不舒服,那么有没有什么办法让我们既可以
- 红色警戒可以说是许多电脑游戏玩家的童年了,但是帋又不少用户在使用Windows10系统的时候发现自己玩不了红色警戒2 * ,其实依旧是可
- win10输入法不见了怎么调出来?很多用户在使用win10系统过程中,用着用着就发现自己的右下角输入法不见了,无法进行各个中文输入法的切换使
- 最近升级Win11系统的人越来越多了,想要升级Win11系统首先要让你的Win10加入预览体验计划,不过有用户在加入预览体验计划的时候注册一
- Word2010怎么批量保存图片?这篇文章主要介绍了Word2010批量保存图片教程,需要的朋友可以参考下如果我们下载了一篇word文档,里
- 如果想要对惠普品牌主板开启vt虚拟化技术的话,可以先确认自己的电脑是不是支持vt虚拟化功能。如果可以那么在电脑开机的时候可以使用快捷方式进入
- 搜狗五笔输入法怎么设置在输入网址邮箱时自动补全?现在我就来为大家说明一下如何操作。
- 枯燥的数字后如果能有个小数据图,对数据的感受能更直观。点击“插入”功能选项卡,在“迷你图”组中,单击一种迷你图表类型(拆线图、柱线图、盈亏图
- ppt怎么设计逼真的三维魔方?经常玩魔方,想要自己设计一款魔方模型,该怎么设计呢?下面我们就来看看使用ppt设计魔方模型的教程,需要的朋友可
- 记得以前有人问过小编一个问题,如何才能在不使用第三方软件的情况下更改自己的IP地址,其实这个很简单,一般情况下,咱们使用的网络都不会是一个固
- 在发布 iOS 14.6、iPadOS 14.6、tvOS 14.6、watchOS 7.5 和 macOS Big Sur 11.4 正式
- Excel中什么是填充柄?填充柄就是位于选定单元格右下角的小黑方块。当鼠标指向填充柄时,鼠标的指针变为黑十字。填充柄的作用是用来填充数据。如
- Win11系统是最新版的电脑操作系统,但是Win11系统安装是有配置要求的,因特尔处理器是很多用户都在使用的处理器,每一代的英特尔处理器发布