Office中国论坛/Access中国论坛

标题: 中文大写金额转阿拉伯数字 [打印本页]

作者: 轻风    时间: 2016-11-4 10:15
标题: 中文大写金额转阿拉伯数字
本帖最后由 轻风 于 2016-11-4 11:37 编辑

这么多年了,只听到有人问阿拉伯数字转中文大写金额,昨天在群里却有人提出相反的要求。因为中文大写金额比较复杂,第一感觉很麻烦。
其实也没那么麻烦,大写金额无非就那么几个中文字,我用最笨的方法从左到右一个个字符循环处理。
函数代码很简单,没有深度。没经过大量测试,不知道结果是否绝对准确,大家帮忙测试下,有错误请告知。-----



作者: yfy629    时间: 2016-11-4 10:18
收藏了
作者: tmtony    时间: 2016-11-4 10:20
赞一个!原来Access就行,我还远道去看Excel
作者: yanwei82123300    时间: 2016-11-4 13:06
赞一个!原来Access就行,我还远道去看Excel
作者: 风中漫步    时间: 2016-11-4 13:10
新鲜
作者: a63521557    时间: 2016-11-4 14:47
已接近解决问题了,但不是金额大写转小写,而是中文数字转阿拉伯数字。给个示例如下吧,示例中也有转换不了的。
作者: a63521557    时间: 2016-11-4 14:50
已接近解决问题了,但不是金额大写转小写,而是中文数字转阿拉伯数字。给个示例如下吧,示例中也有转换不了的。
中文数字        西文数字
九百九十六冊        996
一千冊        1000
一冊        1
一百二冊        102
一千二十七冊        1027
一千四十六冊        1046
一千三百八十七册        1387
一千五百二十四冊        1524
一千五百三十册        1530
一千六百六冊        1606
一千六百八册        1608
一千六百三十冊        1630
一千七百九十七册        1797
五千四百八十六冊        5486
六千二百四十六冊        6246
七千一百八十五冊        7185
一       
5冊       
一百十七冊       
三百十九冊       
一百十冊       
我暂时的解决的办法是提取数据字典公式,及手工处理
DLookUp("数字","数字转换","[中文]='" & Mid([中文数字],1,Len([中文数字])-1) & "'")
作者: roych    时间: 2016-11-5 15:29
确实不像中文的语法习惯,我们的习惯是:
102   →   一百零二
3021  → 三千零二十一
。。。。。。。。。为什么都省掉“零”呢?
作者: a63521557    时间: 2016-11-6 23:33
roych 发表于 2016-11-5 15:29
确实不像中文的语法习惯,我们的习惯是:
102   →   一百零二
3021  → 三千零二十一

这些中文数字,是从行业古籍图书普查信息系统中导出的,填写极为不规范,随意性太大,同一个数字有几种中文书写表示方法,比如102,其表示有:百零二、一百零二、一百二、102;而120,则有:百二十、一百二十、120;在许多数字权位上不是省零就是省一,而这也符合国人习惯,无法强制规范。所以我的思路是要解决这类问题,第一步就是由程序填补缺失的汉字数字权位,规范化输入的中文数字,然后再将其转化为阿拉伯数字。只是目前问题已变通解决,暂时还没空去做程序完善。
作者: t小宝    时间: 2016-11-7 12:05
非常好,我简单测试一下没有问题




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3