ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

EH搜索     
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
Excel不给力? 何不试试FoxTable! Excel 2016函数公式学习大典 Office知识技巧免费学 打造核心竞争力的职场宝典
300集Office 2010微视频教程 Tableau-数据可视化工具 精品推荐-800套精选PPT模板,点击获取 ExcelHome出品 - VBA代码宝免费下载
你的Excel 2010实战技巧学习锦囊 欲罢不能, 过目难忘的 Office 新界面 Excel VBA经典代码实践指南
查看: 1014|回复: 27

[分享] 【12-24 Eve版大更新】大一统!空前强大的中文大小写-财务金额-阿拉伯数字互转函数

[复制链接]

TA的精华主题

TA的得分主题

发表于 2019-12-17 10:43 | 显示全部楼层 |阅读模式
本帖最后由 月关 于 2019-12-25 10:20 编辑

两个原因促使我昨天下午沉下心来仔仔细细重新打磨了一番,还是有点效果的,所以,
如果有在使用此函数的同学,强烈建议更新到此版。
2019-12-24 更新:
① 调整內部逻辑,真正实现5种状态任意转换(一步到位,不需要嵌套);
② 引入第三参数,增加易失性开关(默认为关,我本人觉得一打开就重算还是有点讨厌的);
③ 大幅精简代码,删除部分冗余判断及废代码;
④ 改为向后兼容性结构,即使不懂代码的人,也可以通过复制两句简单的代码瞬间实现次方级扩容;
—— 为什么第③条说精简而不是优化呢?因为确实没有优化,在某方面来说,我甚至觉得有点小倒退。③④条解释几句:这个函数最开始的设计逻辑就是通过查找关键字(单位)将源数据切割为左右(L|F)"两"部分,左右两侧分别递归最后得出结果。所以,从理论上来讲,十位以后皆可通过层层递归来实现(十位有点特殊,需要单独写)。有看过上一版代码的人会发现,千位以后所有的小函数都是一模一样的,变化的仅仅是单位而已。至于为什么当时百位和千位不直接递归,是因为我觉得这两个变化比较少,直接就能写出来,为了效率起见就没再使用不必要的递归循环。
这次为了向后兼容及精炼代码,加了一个参数将单位传递进来,将原来的一堆小拖油瓶整合为一个函数,使代码看起来整齐划一,不懂代码的人要扩容的话不至于被那一堆小拖油瓶所吓住。所谓鱼和熊掌不可兼得,是孟子他老人家非这么说的,有问题你们得找他老人家理论。(扩容的地方代码中有提示。当然了,如果勤快点百位/千位还是可以在一个函数中单独写的,十位就是一个很好的例子,这个这个这个……还是继续往下说吧……);
⑤ 改写二-3、二-5参数的实现方式;原来的代码是通过循环替换来实现的,通过观察,使点小手段套路了一下内置函数,省了俩循环 ^)^
⑥ 进一步增强了兼容性。(实际上只是添加了源数据中有空格的处理,但因为结构的调整,兼容性确实是增强了不少  ^)^)
如果逻辑上不反人类,应该是没有什么不能转换的了吧?
微信截图_20191225090555.png
微信截图_20191225090611.png

说一下两个原因:第一个我前面说过这原本只是一个打发时间的作品,但是意料之外的得到了老师们不挑剔的鼓励,让我有点受宠若惊;再一个就是,接到[上][级]指示,让我抓紧学一下3D Max以“辅助”一下她的设计工作,所以,可能得有一段时间来这里没那么勤了,所以尽自己目前的能力尽可能的将这个函数完善了一下。昨天晚上有事没来得及发,正好今天圣诞节权当是个圣诞小礼物了。

NumSwitch数字转换函数Eve版.rar (25.18 KB, 下载次数: 102)

评分

参与人数 9财富 +30 鲜花 +17 技术 +1 收起 理由
huang1314wei + 30 优秀作品
ardu95 + 2
YZC51 + 3 优秀作品
wxhnr + 3 值得肯定
蓝桥玄霜 + 1 值得肯定

查看全部评分

TA的精华主题

TA的得分主题

发表于 2019-12-17 12:31 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2019-12-17 12:42 | 显示全部楼层
本帖最后由 1055751654 于 2019-12-17 12:57 编辑

谢谢楼主分享,几年几月的转换这里面没有呀,哈哈,另一个帖子没出来

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-12-17 13:04 | 显示全部楼层
1055751654 发表于 2019-12-17 12:42
谢谢楼主分享,几年几月的转换这里面没有呀,哈哈,另一个帖子没出来

把“几”输入进来不就有了?那个题的关键不是年和月,而是它们前面的数字

TA的精华主题

TA的得分主题

发表于 2019-12-17 13:10 | 显示全部楼层
月关 发表于 2019-12-17 13:04
把“几”输入进来不就有了?那个题的关键不是年和月,而是它们前面的数字

嗯嗯,试了下,可以
QQ截图20191217130935.png

TA的精华主题

TA的得分主题

发表于 2019-12-17 20:48 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-12-18 14:18 | 显示全部楼层
zopey 发表于 2019-12-17 20:48
整数 单位 *10000,小数 单位 /1000

这个………… 学生驽钝,老师是在帮学生扩充数量单位的知识么?
这份单位表平生第一次见识了

另外,我想了想,我这个其实支持无限大

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-12-18 14:30 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2019-12-18 14:46 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2019-12-18 14:54 | 显示全部楼层
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

关注官方微信,高效办公专列,每天发车

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

GMT+8, 2020-4-8 13:53 , Processed in 0.079294 second(s), 16 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2020 Wooffice Inc.

   

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

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

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