ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[原创] 财务上大写金额的解决方案

[复制链接]

TA的精华主题

TA的得分主题

发表于 2009-4-12 21:48 | 显示全部楼层 |阅读模式
在财务实践中,经常要把数字转换成大写的金额。解决方案。利用NUMBERSTRING函数,结合SEARCH, ISERROR, MID, INT等函数,解决带有角、分的金额大写转换问题。

IF(ISERROR(SEARCH(".",A1))=TRUE,NUMBERSTRING(A1,2)&"元整",NUMBERSTRING(INT(A1),2)&"元"&NUMBERSTRING(MID(A1,SEARCH(".",A1)+1,1),2)&"角"&IF(ISERROR(NUMBERSTRING(MID(A1,SEARCH(".",A1)+2,1),2))=TRUE,"零分",NUMBERSTRING(MID(A1,SEARCH(".",A1)+2,1),2)&"分"))

cw.zip

1.74 KB, 下载次数: 83

TA的精华主题

TA的得分主题

发表于 2009-4-12 21:59 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
这个我正需要,收藏了。

TA的精华主题

TA的得分主题

发表于 2009-4-12 22:26 | 显示全部楼层
早过时了,参考:

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

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

[ 本帖最后由 wshcw 于 2009-4-12 22:28 编辑 ]

TA的精华主题

TA的得分主题

发表于 2009-4-12 22:33 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
原帖由 a1guan 于 2009-4-12 21:48 发表
在财务实践中,经常要把数字转换成大写的金额。解决方案。利用NUMBERSTRING函数,结合SEARCH, ISERROR, MID, INT等函数,解决带有角、分的金额大写转换问题。

IF(ISERROR(SEARCH(".",A1))=TRUE,NUMBERSTRING(A ...


不是很好,首先,不会正确显示负数金额比如-12元,,其次小数位数超过2位不会四舍五入,比如0.995,

看我的,里面总有一款适合你的,比较全http://club.excelhome.net/thread-416238-1-1.html

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-4-13 13:20 | 显示全部楼层
四舍五入,可以用ROUND(A1,2), 替代A1.
至于负数,我觉得也可以用一个IF搞定,不过就是公式太长了.

TA的精华主题

TA的得分主题

发表于 2009-4-13 14:06 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
=SUBSTITUTE(SUBSTITUTE(IF(I16<0,"负","")&TEXT(TRUNC(ABS(ROUND(I16,2))),"[DBNum2]")&"元"&IF(ISERR(FIND(".",ROUND(I16,2))),"",TEXT(RIGHT(TRUNC(ROUND(I16,2)*10)),"[DBNum2]"))&IF(ISERR(FIND(".0",TEXT(I16,"0.00"))),"角","")&IF(LEFT(RIGHT(ROUND(I16,2),3))=".",TEXT(RIGHT(ROUND(I16,2)),"[DBNum2]")&"分",IF(ROUND(I16,2)=0,"","整")),"零元零",""),"零元","")
试试看这个,我觉得挺好用的

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-4-13 17:57 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2009-4-14 14:00 | 显示全部楼层
呵,也不知,
不过不用管它,只要将里面的I16换成小写所在的单元格位置即可

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-4-14 21:56 | 显示全部楼层
谢谢你的公式。自己鼓捣的公式,很有成就感。呵呵。

TA的精华主题

TA的得分主题

发表于 2009-4-15 15:03 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
好,学习了
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-5-20 22:55 , Processed in 0.033449 second(s), 13 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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