ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
300集Office 2010微视频教程 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: cbtaja

[原创] 148字符无缺陷人民币金额大写公式 逆天了!

  [复制链接]

TA的精华主题

TA的得分主题

 楼主| 发表于 2013-10-31 13:40 | 显示全部楼层
最后,从分析人民币金额构成的数值三部分(即①、符号,②、整数部分,③小数部分)的既相对独立又存在关联制约的特征出发,终于得出一个堪称完美的三段式公式(165字):
  1. =TEXT(RMB(A2,2),";负;零元")&TEXT(INT(ABS(A2)+0.5%),"[dbnum2]G/通用格式元;;")&SUBSTITUTE(SUBSTITUTE(TEXT(RIGHT(RMB(A2,2),2),"[dbnum2]0角0分;;整"),"零分","整"),"零角",IF(A2^2<1,,"零"))
复制代码
这个公式不仅完全符合票据填写的有关规定,而且也完全符合人们的语言习惯,与国产软件WPS提供的内置人民币大写结果完全一致,而且在符合前面这两个条件的同时,其字符数也达到了最省。

补充内容 (2014-7-13 11:27):
再精简掉1个字(仅164字):
=TEXT(A2+0.5%,";负;负")&TEXT(INT(ABS(A2)+0.5%),"[dbnum2]G/通用格式元;;零元")&SUBSTITUTE(SUBSTITUTE(TEXT(RIGHT(RMB(A2,2),2),"[dbnum2]0角0分;;整"),"零分","整"),"零角",IF(A2^2

补充内容 (2014-9-26 09:41):
对补充的更正:TEXT(RMB(E3,2),";负")&TEXT(INT(ABS(E3)+0.5%),"[dbnum2]G/通用格式元;;零元")&SUBSTITUTE(SUBSTITUTE(TEXT(RIGHT(RMB(E3,2),2),"[dbnum2]0角0分;;整"),"零分","整"),"零角",IF(E3^2<1,,"零"

补充内容 (2015-4-23 12:42):
再精简:
=IF(A2>-0.5%,"","负")&TEXT(INT(ABS(A2)+0.5%),"[dbnum2]G/通用格式元;;零元")&SUBSTITUTE(SUBSTITUTE(TEXT(RIGHT(RMB(A2,2),2),"[dbnum2]0角0分;;整"),"零分","整"),"零角",IF(A2^2<1,,"零"))

补充内容 (2015-4-23 13:02):
再减少2字符:
=IF(A2>-0.5%,,"负")&TEXT(INT(ABS(A2)+0.5%),"[dbnum2]G/通用格式元;;零元")&SUBSTITUTE(SUBSTITUTE(TEXT(RIGHT(RMB(A2,2),2),"[dbnum2]0角0分;;整"),"零分","整"),"零角",IF(A2^2<1,,"零"))

TA的精华主题

TA的得分主题

发表于 2013-10-31 13:41 | 显示全部楼层
我总觉得五分就是五分,没必要写成什么“零元零五分”这不科学

点评

这个148字公式的“无缺陷”是以票据填写的有关规定的角度来说的,“零元零伍分”完全满足“结果正确、不产生歧义,不会留下被涂改的可能”这样的基本要求。  发表于 2013-10-31 13:57

TA的精华主题

TA的得分主题

 楼主| 发表于 2013-10-31 13:45 | 显示全部楼层
在上面的148字和165字公式中,都以两个字符连接运算符&把公式分成3个部分,即①符号部分,②整数部分,③小数部分,因此我称之为“三段式”金额大写公式。其特点是公式结构非常简单、清晰,因此很容易让人看明白。

TA的精华主题

TA的得分主题

 楼主| 发表于 2013-10-31 14:16 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
最后,下结论:
如仅以满足人民银行关于票据填写的基本规定为准,则以17楼的148字符公式为最优,
如在此之上还增加一条要求:还要完全符合人们语言习惯,则以21楼的165字符公式为最优。

或者,如果你不相信这个结论的话,那么你可以尝试在同样的条件下做一个更精短的公式来{:soso_e112:}

TA的精华主题

TA的得分主题

发表于 2013-10-31 15:34 | 显示全部楼层
本帖最后由 一剑惊心 于 2013-10-31 15:41 编辑

没听说过0.05元大写写成零元零伍分的,WPS的自定义格式也只是显示伍分,况且没处理空格的情况啊

TA的精华主题

TA的得分主题

 楼主| 发表于 2013-11-1 14:19 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
一剑惊心 发表于 2013-10-31 15:34
没听说过0.05元大写写成零元零伍分的,WPS的自定义格式也只是显示伍分,况且没处理空格的情况啊

0.05元的大写可否为“零元零伍分”,当以中国人民银行会计司编写的最新《企业、银行正确办理支付结算指南》中对“正确填写票据和结算凭证的基本规定”的回答为准(该内容在18楼有引述),不以个人是否听说过为准。
至于空格还要转换为大写金额的,之前我也没听说过,所以让你见笑了。

点评

从会计的计算单位是元来说,“零元伍分”是可以的,但人们的一般习惯就是 “伍分”。  发表于 2013-11-1 14:43

TA的精华主题

TA的得分主题

发表于 2013-11-1 14:27 | 显示全部楼层
这么多软条件,140多字符和170多字符之间的30字符差距完全可以割除,谈不上逆天。
放在同一个标准下,简化长度,才能谈逆天。根据中国人民银行会计司编写的最新XXXXX,我没看过哈,自己挑这么多软条件,正常大多人接受的也是0.05为伍分。其实就没必要再简化成这样的。
个人觉得

TA的精华主题

TA的得分主题

发表于 2013-11-1 17:10 | 显示全部楼层
请教个问题,179字公式中:
  IF(-RMB(A2,2),TEXT(A2,";负")     这里为什么不能写成   IF(-RMB(A2,2),"负")

TA的精华主题

TA的得分主题

发表于 2013-11-1 17:11 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
179字公式中:
  +0.5%是什么目的?

TA的精华主题

TA的得分主题

发表于 2013-11-1 18:23 | 显示全部楼层
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-5-4 15:25 , Processed in 0.047382 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表