ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[分享]人民币大写函数TEXT终极版 1行(136字符)

  [复制链接]

TA的精华主题

TA的得分主题

发表于 2008-7-22 08:43 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
本帖已被收录到知识树中,索引项:数据格式转换

我在EXCEL吧收集到的两个公式更短一些。

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

这个182个字符。

=SUBSTITUTE(SUBSTITUTE(TEXT(TRUNC(FIXED(A2)),"[>0][dbnum2];[<0]负[dbnum2];;")&TEXT(RIGHT(FIXED(A2),2),"[dbnum2]0角0分;;"&IF(ABS(A2)>1%,"整",)),"零角",IF(ABS(A2)<1,,"零")),"零分","整")

这个172个字符。

TA的精华主题

TA的得分主题

发表于 2008-7-22 15:33 | 显示全部楼层
QUOTE:
以下是引用交叉点在2008-7-22 8:43:01的发言:

我在EXCEL吧收集到的两个公式更短一些。

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

这个182个字符。

=SUBSTITUTE(SUBSTITUTE(TEXT(TRUNC(FIXED(A2)),"[>0][dbnum2];[<0]负[dbnum2];;")&TEXT(RIGHT(FIXED(A2),2),"[dbnum2]0角0分;;"&IF(ABS(A2)>1%,"整",)),"零角",IF(ABS(A2)<1,,"零")),"零分","整")

这个172个字符。

上面的172字符公式测试后不对

正确的172字符答案为:

=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(IF(B8<0,"负",)&TEXT(INT(ABS(B8)),"[dbnum2];; ")&TEXT(MOD(ABS(B8)*100,100),"[>9][dbnum2]圆0角0分;[=0]圆整;[dbnum2]圆零0分"),"零分","整")," 圆零",)," 圆",)

公式出产地:http://club.excelhome.net/viewthread.php?tid=331382

另: “[dbnum2]G/通用格式元” 仅能在中文版的Excel中使用,在英文版中会出错 

         “[dbnum2]General元”同样仅能在英文版的Excel中使用,在中文版中会出错 

[此贴子已经被作者于2008-7-22 15:36:05编辑过]

TA的精华主题

TA的得分主题

发表于 2008-7-22 17:27 | 显示全部楼层
QUOTE:
以下是引用ldy在2008-7-13 13:26:52的发言:

Function ldyDX(M)'205个字符
ldyDX = IIf(M > -0.005, "", "负") & IIf(Abs(M) < 0.005, "", Replace(Replace(Replace(Join(Application.Text(Split(Format(Abs(M), "0.00"), "."), Split("[DBNum2] [DBNum2]0角0分")), "元"), "零分", "整"), "零角", ""), "零元", ""))
End Function

居然还可以短一点 200个字符

Function DX(M)'200个字符
DX = IIf(Abs(M) < 0.005, "", Replace(Replace(Replace(Join(Application.Text(Split(Format(M, " 0. 00")), Split("@ [DBNum2];;0 [>9][dbnum2]圆0角0分;[=0]圆整;[dbnum2]圆零0分")), ""), "零分", "整"), "0圆零", ""), "0圆", ""))
End Function 

核心语句2 Join(Application.Text(Split(Format(M, " 0. 00")), Split("@ [DBNum2];;0 [>9][dbnum2]圆0角0分;[=0]圆整;[dbnum2]圆零0分")), "")

-捌角贰分                     -0.82
-贰分                            -0.015
-壹佰圆零贰分             -100.02
壹万圆零贰分              10000.02
贰角整                         0.2
空字串                         0

恶补函数的副产品,纯粹的脑力体操。TEXT有如此多秒用!叹服

核心语句 Join(Application.Text(Split(Format(Abs(M), "0.00"), "."), Split("[DBNum2] [DBNum2]0角0分")), "元")

已经完成 X元X角X分 的转换 其他 iif replace 都是对细节的补充。

两年前我写的7 行,又有 gly1126 写的3行,到现在的1 行。欢迎测试挑错

呵呵 自己挑的事,自己终结

附一个 抄自 EXCEL吧 的公式 191字符

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


200字就想终结,现在是181个字,还想在挑战这个极限呢?

你懂得什么是自定义函数吗?你分得清 自定义函数 和 公式 的区别吗?  

你如果能看得懂我写的函数,请你用VBA方法写更精简的 我给你加分 ,提醒一下这是VBA版 ----ldy

参考:

[分享]九种人民币大写数字相互转换及新增人民币写法三种


 

[此贴子已经被ldy于2008-7-22 21:15:41编辑过]

TA的精华主题

TA的得分主题

发表于 2008-7-22 17:46 | 显示全部楼层
正好用上,谢谢这里的专家。

TA的精华主题

TA的得分主题

发表于 2008-7-23 17:08 | 显示全部楼层
太利害了!!!!你们太有才了!!!!

TA的精华主题

TA的得分主题

 楼主| 发表于 2008-7-23 23:14 | 显示全部楼层
185了 是否还能减 ?

TA的精华主题

TA的得分主题

发表于 2008-7-24 09:26 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2008-7-24 15:45 | 显示全部楼层

楼主:19楼附件中有126个字符的,它与35楼的171个字符的公式有何异同?

此外,如果需要得到28楼的式样“我还是喜欢 ¥ 分整”,其公式怎样?

[em04][em06]

TA的精华主题

TA的得分主题

 楼主| 发表于 2008-7-24 19:29 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
QUOTE:
以下是引用57wk在2008-7-24 15:45:30的发言:

楼主:19楼附件中有126个字符的,它与35楼的171个字符的公式有何异同?

此外,如果需要得到28楼的式样“我还是喜欢 ¥ 分整”,其公式怎样?

[em04][em06]

你试一下 0.999 、0.99  和  -0.999、 -0.99  就知道了

36楼链接里有你要的   ¥ 分整

TA的精华主题

TA的得分主题

发表于 2008-7-26 21:45 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
QUOTE:
以下是引用ldy在2008-7-24 19:29:22的发言:

你试一下 0.999 、0.99  和  -0.999、 -0.99  就知道了

36楼链接里有你要的   ¥ 分整

谢谢版主指点!

您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-17 11:43 , Processed in 0.042478 second(s), 6 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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