ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 39747|回复: 88

[分享] 人民币金额大写方法及金额分列汇总

  [复制链接]

TA的精华主题

TA的得分主题

发表于 2012-4-26 01:53 | 显示全部楼层 |阅读模式
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
本帖已被收录到知识树中,索引项:数据格式转换
本帖最后由 祝洪忠- 于 2017-10-25 21:08 编辑

  经过一段时间的整理,本人收集了一些关于人民币金额中文大写的公式,现放在论坛里和朋友们一起共享,希望对财务人员有所帮助。当然里面的公式并不都是十全十美的,大家可以先比较,然后选择最适合自己用的。也许有人觉得没有必要收集这么多公式,但是关于人民币的公式论坛里虽然多,有些只是表示普通的阿拉伯数字是可以的,遇到特殊的就难以胜任了,本例中所罗列的公式均来自于EH,之所以要放在一起,是为了让大家更好的学习鉴别,从而选择最精准的公式用于工作。

       我暂时将人民币大写公式归为三类:公式类(31个),自定义函数VBA类(11个,其中自定义函数法6有待完善)和另类大写(3个),另外还有一个金额中文大写转换阿拉伯数字的函数,大家可以参考一下。

  整理的过程中,特意选择了一些拼写相对较难的阿拉伯数字进行转换,通过比较,可以分出优劣。

    大家如果有更好的公式,也可以发出来一起分享。

  所有的公式均来自于EH,未注明出处,请各位老师见谅,在这里尤其要感谢wshcw老师的指导。

另附:
  关于“零”字的写法(引自中国人民银行会计司编写的最新《企业、银行正确办理支付结算指南》的第114页-第115页):
  1.阿拉伯小写金额数字中有“0”时, 中文大写应按照汉语语言规律、金额数字构成和防止涂改的要求进行书写。举例如下:
  (1)阿拉伯数字中间有“0”时,中文大写金额要写“零”字。如¥1409.50,应写成“人民币壹仟肆佰零玖元伍角”。
  (2)阿拉伯数字中间连续有几个“0”时,中文大写金额中间可以只写一个“零”字。如¥6007.14,应写成“人民币陆仟零柒元壹角肆分”。
  (3)阿拉伯金额数字万位或元位是“0”,或者数字中间连续有几个“0”,万位、元位也是“0”,但千位、角位不是“0”时,中文大写金额中可以只写一个
“零”字,也可以不写“零”字。如¥1680.32,应写成“人民币壹仟陆佰捌拾元零叁角贰分”,或者写成“人民币壹仟陆佰捌拾元叁角贰分”;又如¥107000.53,
应写成“人民币壹拾万柒仟元零伍角叁分”,或者写成“人民币壹拾万零柒仟元伍角叁分”。
  (4)阿拉伯金额数字角位是“0”,而分位不是“0”时,中文大写金额“元”后面应写“零”字。如¥16409.02,应写成“人民币壹万陆仟肆佰零玖元零贰分”;
又如¥325.04,应写成“人民币叁佰贰拾伍元零肆分”。
  2.表示位的文字前必须有数字,如“拾元应写作“壹拾元整。
  3.不能用不规范的简化字代替,如以“另”代“零”,以“两”代“贰”,以“廿”代“贰拾”等。
  4.大写金额写法举例。例如:
人民币105846元,应写成“人民币壹拾万零伍仟捌佰肆拾陆元正”。
人民币1000846元,应写成“人民币壹佰万零捌佰肆拾陆元正”。
人民币1860.96元,应写成“人民币壹仟捌佰陆拾元零玖角陆分”,也可写成“人民币壹仟捌佰陆拾元玖角陆分”。
人民币86000.80元,可以写成“人民币捌万陆仟元零捌角整”。也可以写成“人民币捌万陆仟元捌角正”。
人民币金额分列汇总.rar (197.18 KB, 下载次数: 46467)
副本人民币金额大写方法汇总最终(2012.4.26).rar (28.25 KB, 下载次数: 35311)
大写.jpg
金额分列.jpg

评分

10

查看全部评分

TA的精华主题

TA的得分主题

发表于 2012-4-26 02:03 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
{:soso__5799199981496220763_3:}总结的很好啊,辛苦了,慢慢学习

TA的精华主题

TA的得分主题

发表于 2012-4-26 03:06 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
写了那么多,却没有收藏到精品

TA的精华主题

TA的得分主题

发表于 2012-4-26 03:08 | 显示全部楼层
本帖最后由 wshcw 于 2012-4-26 03:13 编辑

建议参考我2008年的贴子:
[原创]人民币大写数字相互转换
http://club.excelhome.net/thread-337492-1-1.html

TA的精华主题

TA的得分主题

发表于 2012-4-26 06:18 | 显示全部楼层
wshcw 发表于 2012-4-26 03:08
建议参考我2008年的贴子:
[原创]人民币大写数字相互转换
http://club.excelhome.net/thread-337492-1-1.h ...

08年就弄好了,厉害。。。。

TA的精华主题

TA的得分主题

 楼主| 发表于 2012-4-26 20:02 | 显示全部楼层
本帖最后由 ugyun 于 2012-4-26 20:41 编辑
wshcw 发表于 2012-4-26 03:08
建议参考我2008年的贴子:
[原创]人民币大写数字相互转换
http://club.excelhome.net/thread-337492-1-1.h ...

您的帖子我看过,这上面收藏的呢。  老师,能帮忙转换小写为9009000.90元吗?论坛上的N种方法显示大写为:“玖佰万玖仟元玖角整”或“玖佰万玖仟元零玖角整”,都是错误的格式,即万和玖之间少了个零,正确的大写应为:“玖佰万零玖仟元玖角整”或“玖佰万零玖仟元零玖角整”


  这个函数倒是可以转换,然而在表示负数时就不行了,请老师帮忙看看:
=IF(A3<1,IF(A3<0.1,TEXT(INT(A3*100),"[DBNum2]G/通用格式")&"分",IF((INT(A3*100)-INT(A3*10)*10=0),TEXT(INT(A3*10),"[DBNum2]G/通用格式")&"角整",TEXT(INT(A3*10),"[DBNum2]G/通用格式")&"角"&TEXT(INT(A3*100)-INT(A3*10)*10,"[DBNum2]G/通用格式")&"分")),TEXT(INT(A3),"[DBNum2]G/通用格式"&"元")&IF((INT(A3*10)-INT(A3)*10)=0,IF((INT(A3*100)-INT(A3*10)*10)=0,"","零"),IF((INT(A3*0.1)-INT(A3)*0.1)=0,"零","")&TEXT(INT(A3*10)-INT(A3)*10,"[DBNum2]G/通用格式")&"角")&IF((INT(A3*100)-INT(A3*10)*10)=0,"整",TEXT(INT(A3*100)-INT(A3*10)*10,"[DBNum2]G/通用格式")&"分"))

点评

看过并收藏的的是早期的公式,4楼的链接公式才是精品。  发表于 2012-4-26 21:15

TA的精华主题

TA的得分主题

发表于 2012-4-26 20:44 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
ugyun 发表于 2012-4-26 20:02
您的帖子我看过,这上面收藏的呢。  老师,能帮忙转换小写为9009000.90元吗?论坛上的N种方法显示大写为 ...

小小的变通就可以了:
=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(IF(-RMB(A1,2),TEXT(A1,";负")&TEXT(INT(ABS(A1)+0.5%),"[dbnum2]G/通用格式元;;")&TEXT(RIGHT(RMB(A1,2),2),"[dbnum2]0角0分;;整"),),"零角",IF(A1^2<1,,"零")),"万",IF(AND(MOD(ABS(A1%),1000)<100,MOD(ABS(A1%),1000)>=10),"万零","万")),"零分","整")

TA的精华主题

TA的得分主题

 楼主| 发表于 2012-4-26 21:17 | 显示全部楼层
本帖最后由 ugyun 于 2012-4-26 21:18 编辑
wshcw 发表于 2012-4-26 20:44
小小的变通就可以了:
=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(IF(-RMB(A1,2),TEXT(A1,";负")&TEXT(INT(ABS( ...

非常感谢云南大理老师,目前好像也只有您这个函数可以完美表示以下金额数字:

9009000.9
100100.01
9000.2
86000.8
6007.5
1680.32
107000.53
10.02
105846.05
0.01
1000846
-100.01

TA的精华主题

TA的得分主题

 楼主| 发表于 2012-4-26 22:04 | 显示全部楼层
本帖最后由 ugyun 于 2012-4-27 06:39 编辑

1楼附件已更新
大写.jpg
金额分列.jpg

人民币金额大写方法汇总最终(2012.4.26).rar

65.89 KB, 下载次数: 348

人民币金额分列汇总.rar

17.13 KB, 下载次数: 316

TA的精华主题

TA的得分主题

发表于 2012-4-26 22:14 | 显示全部楼层
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-24 04:17 , Processed in 0.048847 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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