ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[Excel 函数与公式] [开_118][已结}结贴在1楼]大写金额逆转换为数字金额

[复制链接]

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-7-26 22:54 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
原帖由 gouweicao78 于 2009-7-26 05:22 发表
根据wshcw兄题目的数据,5、7楼公式是可以的。但都没考虑:叁万元整、肆仟元整、玖百元整、贰拾元整等情况。
=SUM((FIND(MID(SUBSTITUTE(A2,"元",IF(COUNT(FIND({"万";"仟";"百";"拾"}&"元",A2)),"零元","元")),FIN ...

按你的思路,简10字(238字)
=SUM((FIND(MID(SUBSTITUTE(A2,"元",IF(COUNT(FIND({"万";"仟";"佰";"拾"}&"元",A2)),,"元")),FIND(MID("万仟佰拾元角分",ROW($1:$7),1),SUBSTITUTE(A2,"元",IF(COUNT(FIND({"万";"仟";"佰";"拾"}&"元",A2)),,"元"))&"零万零仟零佰零拾零元零角零分")-1,1),"零壹贰叁肆伍陆柒捌玖")-1)*10^(5-ROW($1:$7)))
我的公式257,217字.

TA的精华主题

TA的得分主题

发表于 2009-7-26 23:44 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册

回复 11楼 wshcw 的帖子

我按我的思路简化后175字。

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-7-26 23:46 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
最终简化至195字

TA的精华主题

TA的得分主题

发表于 2009-7-27 07:40 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
原帖由 gouweicao78 于 2009-7-26 04:53 发表
=SUM((FIND(MID(A2,FIND(MID("万仟佰拾元角分",COLUMN(A:G),1),A2&"零万零仟零佰零拾零元零角零分")-1,1),"零壹贰叁肆伍陆柒捌玖")-1)*10^(5-COLUMN(A:G)))

学习一下,不过还是IFERROR更合适
=SUM(TEXT(FIND(MID(0&A2,FIND(MID("万仟佰拾元角分",ROW($1:7),1),A2&"万仟佰拾元角分"),1),"0整分万仟佰拾零壹贰叁肆伍陆柒捌玖")-8,"0;!0")*10^(5-ROW($1:7)))

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2009-7-27 08:36 | 显示全部楼层
佩服,赵兄的思路确实奇特。我也将自己简化的175字拿出来献丑吧:
=SUM((FIND(MID(A2&"零元",FIND(MID("万仟佰拾元角分",ROW($1:$7),1),SUBSTITUTE(A2,"元",0,2-COUNT(FIND({"万";"仟";"佰";"拾"}&"元",A2)))&"零万零仟零佰零拾零元零角零分")-1,1),"零壹贰叁肆伍陆柒捌玖")-1)*10^(5-ROW($1:$7)))

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-7-27 12:58 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
原帖由 x.f.zhao 于 2009-7-27 07:40 发表

学习一下,不过还是IFERROR更合适
=SUM(TEXT(FIND(MID(0&A2,FIND(MID("万仟佰拾元角分",ROW($1:7),1),A2&"万仟佰拾元角分"),1),"0整分万仟佰拾零壹贰叁肆伍陆柒捌玖")-8,"0;!0")*10^(5-ROW($1:7)))

这公式超级的牛,学习了.我用Lookup公式自然很长(182字)

TA的精华主题

TA的得分主题

发表于 2009-7-27 15:12 | 显示全部楼层
强,实在强,再借我一个脑袋也想不出来,看来脑袋会转弯真的不容易啊:::

TA的精华主题

TA的得分主题

发表于 2009-7-27 17:06 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
=SUM((FIND(MID(A2,FIND({"万";"仟";"佰";"拾";"元";"角";"分"},A2&"零万仟佰拾元角分")-1,1),"零壹贰叁肆伍陆柒捌玖")-1)*10^(5-ROW($1:$7)))
我的公式答案是符合的,请大家找找那里有漏洞

TA的精华主题

TA的得分主题

发表于 2009-7-27 17:13 | 显示全部楼层

回复 18楼 冻豆腐 的帖子

8楼说了,没考虑:叁万元整、肆仟元整、玖百元整、贰拾元整等情况

TA的精华主题

TA的得分主题

发表于 2009-7-27 18:33 | 显示全部楼层
14楼的公式真的不错,不过错误值处理的代价确实有点大,到07里面用iferror的话可以省不少字符。

我给另一种思路的公式,各位看看有没有问题:
=SUM((FIND(MID(SUBSTITUTE(A2,"零",),ROW($1:5)*2-1,1),"元整壹贰叁肆伍陆柒捌玖")-2)*10^(FIND(MID(SUBSTITUTE(A2,"零",),ROW($1:5)*2,1),"整00分角元拾佰仟万")-6))

这个结果需要保留两位小数显示,或者在外面再套一个round(..,2)
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-18 20:28 , Processed in 0.039235 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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