无需VBA将字符串中的英文数字词转换为阿拉伯数字可行吗?
无需VBA实现电子表格中英文数字词转阿拉伯数字
可以不用VBA,根据你的Excel版本,用内置函数组合就能实现转换:
适用于Excel 365/2021(支持动态数组函数)
如果你的Excel版本支持动态数组,用下面的公式可以批量处理逗号分隔的字符串:
假设原始数据在A列,在B1单元格输入公式后下拉即可:
=TEXTJOIN(", ",TRUE,XLOOKUP(TRIM(TEXTSPLIT(A1,",")),{"one","two","three","four","five","six","seven","eight","nine","ten"},{1,2,3,4,5,6,7,8,9,10},TRIM(TEXTSPLIT(A1,","))))
公式逻辑:
TEXTSPLIT(A1,","):将逗号分隔的字符串拆分为单个元素的数组TRIM():清除每个元素前后的空格(适配像four, five, 6这类带空格的格式)XLOOKUP():匹配拆分后的元素,若为英文数字词则替换为对应阿拉伯数字,若已是数字则保留原内容TEXTJOIN():将转换后的元素重新拼接为逗号分隔的字符串
适用于旧版Excel(无动态数组支持)
旧版Excel只能通过嵌套SUBSTITUTE函数实现,适合数字词范围有限的场景:
=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(TRIM(A1),"one","1"),"two","2"),"three","3"),"four","4"),"five","5"),"six","6"),"seven","7"),"eight","8"),"nine","9"),"ten","10")
先通过TRIM()清除原始字符串前后的空格,再依次替换每个英文数字词为对应阿拉伯数字。
转换效果验证
原始数据:
1,2,3
1,2,three
4,five,6
four, five, 6
转换后结果:
1, 2, 3
1, 2, 3
4, 5, 6
4, 5, 6
内容的提问来源于stack exchange,提问作者SRJCoding
相关产品推荐
相关产品推荐

