ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[原创] [原创]人民币大写数字相互转换

  [复制链接]

TA的精华主题

TA的得分主题

发表于 2008-8-21 11:39 | 显示全部楼层

回复:(wshcw)[原创]人民币大写数字相互转换

首先感谢楼的的分享。

测试过程中发现,公式中的RMB()函数,在省略第2个参数时,受Windows设置有关:

RMB()函数的使用与Windows设置有关

建议:不要省略参数2,以防止得到不正确的结果:

=SUBSTITUTE(SUBSTITUTE(IF(-RMB(A2),IF(A2>0,,"负")&TEXT(INT(ABS(A2)+0.5%),"[dbnum2]G/通用格式元;;")&TEXT(RIGHT(RMB(A2,2),2),"[dbnum2]0角0分;;整"),),"零角",IF(A2^2<1,,"零")),"零分","整")

[此贴子已经被作者于2008-8-21 11:43:28编辑过]

TA的精华主题

TA的得分主题

发表于 2008-8-21 12:10 | 显示全部楼层

版主的提醒和建议值得重视。

实际上电脑使用和操作员,这些设置一般是想也没有想到过。

猜想:FIXED函数亦然。

TA的精华主题

TA的得分主题

 楼主| 发表于 2008-8-21 13:30 | 显示全部楼层
本帖最后由 wshcw 于 2016-4-19 10:18 编辑

QUOTE:
以下是引用山菊花在2008-8-21 11:39:08的发言:

首先感谢楼的的分享。

测试过程中发现,公式中的RMB()函数,在省略第2个参数时,受Windows设置有关:

RMB()函数的使用与Windows设置有关

建议:不要省略参数2,以防止得到不正确的结果:

=SUBSTITUTE(SUBSTITUTE(IF(-RMB(A2,2),IF(A2>0,,"负")&TEXT(INT(ABS(A2)+0.5%),"[dbnum2]G/通用格式元;;")&TEXT(RIGHT(RMB(A2,2),2),"[dbnum2]0角0分;;整"),),"零角",IF(A2^2<1,,"零")),"零分","整")


经测试:

RMB()函数的使用确实是与Windows设置有关.

但FIXED()函数的使用又与Windows设置无关,缺省时仍然是默认2位小数.

数值 公式 公式表达式
1200.092666 1,200.09 =FIXED(A2)
1249.900984 1,249.90 =FIXED(A3)

[此贴子已经被作者于2008-8-21 23:09:41编辑过]

点评

学习,原来FIXED省略参数时与电脑设置无关  发表于 2011-10-25 17:31

TA的精华主题

TA的得分主题

发表于 2008-8-21 13:43 | 显示全部楼层

一直用英文系统,一直搞不懂rmb这是个什么函数,

现在用汉语系统才知道了。收藏学习,谢谢楼主这么用心的总结。

TA的精华主题

TA的得分主题

发表于 2008-8-21 22:47 | 显示全部楼层

不是有个ESF_mnyToCap(B1)吗?为什么还要去写这么多?

这个ESF_mnyToCap(B1)不管是负值还是正值,正负0.01还是10000001.01怎么样的数值都正确转换了啊

TA的精华主题

TA的得分主题

发表于 2008-8-21 23:05 | 显示全部楼层

回复:(ponyonline)为什么还要去写这么多?

不是有人跑完过马拉松吗?为什么还要跑?

为了“更快、更高、更强”,我们的奥林匹克永无止境。

函数也一样。

TA的精华主题

TA的得分主题

 楼主| 发表于 2008-8-21 23:24 | 显示全部楼层
QUOTE:
以下是引用山菊花在2008-8-21 11:39:08的发言:

首先感谢楼的的分享。

测试过程中发现,公式中的RMB()函数,在省略第2个参数时,受Windows设置有关:

RMB()函数的使用与Windows设置有关

建议:不要省略参数2,以防止得到不正确的结果:

=SUBSTITUTE(SUBSTITUTE(IF(-RMB(A2),IF(A2>0,,"负")&TEXT(INT(ABS(A2)+0.5%),"[dbnum2]G/通用格式元;;")&TEXT(RIGHT(RMB(A2,2),2),"[dbnum2]0角0分;;整"),),"零角",IF(A2^2<1,,"零")),"零分","整")


谢谢山版测试提醒,为了遵循函数使用的严谨性,公式两处都得改(凡使用RMB函数之处都得更正).

目前最完整也最简短(并且用TEXT(A1,";负")还能处理文本型数字)的人民币金额大写 (因RMB(A1)的省略写法还是有缺陷)有如下两个公式:
172个字符  
=SUBSTITUTE(IF(-RMB(A1,2),TEXT(A1,";负")&TEXT(INT(ABS(A1)+0.5%),"[dbnum2]G/通用格式元;;")&TEXT(RIGHT(RMB(A1,2),2),"[>9][dbnum2]0角0分;"&IF(A1^2<1,,0)&"[>][dbnum2]0分;整"),),"零分","整")
171个字符  
=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,,"零")),"零分","整")

[此贴子已经被作者于2008-9-1 23:37:15编辑过]

TA的精华主题

TA的得分主题

发表于 2008-8-22 02:10 | 显示全部楼层
QUOTE:
以下是引用山菊花在2008-8-21 23:05:52的发言:

不是有人跑完过马拉松吗?为什么还要跑?

为了“更快、更高、更强”,我们的奥林匹克永无止境。

函数也一样。

SORRY  刚才研究了下这些公式,才发现ESF_mnyToCap()是EXCEL服务器里的一个宏加载文件里的一个函数

在没安装EXCEL服务器的机子用不了这个函数

TA的精华主题

TA的得分主题

发表于 2008-9-26 08:42 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2008-9-26 09:14 | 显示全部楼层
我还是比较热衷于自定义函数。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-12-22 16:22 , Processed in 0.034274 second(s), 8 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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