打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
text+match将中文小写数字转为阿拉伯数字

小伙伴们,大家过年好。今天要分享的内容是阿拉伯数字(例如1,2,3等)与中文小写数字(一,二,三)的互转,当然不是所有的数字都能互转,肯定是有一个范围的,我这里的范围是1到100之间的数字。如果你想转换更多的数字,可以看完我的文章再研究下。

1.将阿拉伯数字转为中文小写数字

如下图所示,将A列的阿拉伯数字转为B列的中文小写数字。对于这个问题,我们需要用到text的特殊格式代码[dbnum1],它是将数字转为中文小写数字(○、一~十)。如果你对这个代码不熟悉,可以看之前的文章《自定义数字格式7——中文大小写数字》。在B2单元格输入公式=SUBSTITUTE(TEXT(A2,"[dbnum1]"),"一十","十"),向下填充,完成。 

=TEXT(A2,"[dbnum1]")这部分就是用text将数字转为中文小写数字,结果如下图B列所示。大部分都是准确的,但10-19之间返回的结果前面多了个一,不符合我们的习惯。所以下一步要想办法把多余的一给去掉。

我这里用的办法就是把"一十"替换为"十",所以用的函数是substitute,公式为=SUBSTITUTE(TEXT(A2,"[dbnum1]"),"一十","十")。这种转换还是挺简单的。

2.将中文小写数字转为阿拉伯数字

那有没有办法将中文小写数字转为阿拉伯数字呢?就像下图那样。你可以先自己想一下。答案肯定是有的。方法其实也挺简单的,就是在A列的中文数字区域中查找每个中文数字的位置,比如一,那就查找一在A2:A101的位置,结果返回1;二在A2:A101中的位置是2。


而A2:A101这个区域的内容我们又可以用第1个题目的方法,通过内存数组来构造。=SUBSTITUTE(TEXT(ROW($1:$100),"[dbnum1]"),"一十","十")这部分构成一个内存数组,返回的结果就是中文小写数字的一到一百。其实就是第1个题目的公式,只不过把一个数字改为一个数组。

接下来就可以用match来查找中文小写数字在这个内存数组中的位置,在C2单元格输入公式=MATCH(A2,SUBSTITUTE(TEXT(ROW($1:$100),"[dbnum1]"),"一十","十"),),按ctrl+shift+enter三键结束,向下填充,结果如下图所示。

上面的那个公式是为了大家好理解,还可以用另外的公式,在B2单元格输入公式=MATCH("*"&A2,TEXT(ROW($1:$100),"[dbnum1]"),),同样按三键结束,向下填充,结果如下图B列所示。这里match用的是通配符的用法,算是取巧了。

如果你有其他的方法,欢迎在留言区写出你的答案,让我们一起学习。

文件链接:

https://pan.baidu.com/s/1YuXVebKcHA8AUI3z000e-g

提取码:l8vo

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Excel | NUMBERSTRING和TEXT函数:阿拉伯数字和中文数字转换
EXCEL小技巧
中文数字和阿拉伯数字之间的那些事,你明白多少……
学会这组小技巧,数字转换尽在你掌握之中!
EXCEL文本函数-数字小写换大写/英文大小写互换
财务人Excel技巧3:使用嵌套函数 阿拉伯数字转化中文大写
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服