Excel:可变长度字母数字单元格转换求助(无法使用VBA)
可变长度字母数字单元格转换公式解决方案
适用Excel 365/2021及以上版本(支持SEQUENCE函数)
假设目标数据在单元格A1,使用以下公式:
=TEXTJOIN("",TRUE,IF(ISNUMBER(MID(A1,SEQUENCE(LEN(A1)),1)*1),MOD(MID(A1,SEQUENCE(LEN(A1)),1)+1,10),"Z"))
适用旧版Excel(无SEQUENCE函数)
使用数组公式(输入完成后按Ctrl+Shift+Enter确认):
=TEXTJOIN("",TRUE,IF(ISNUMBER(MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1)*1),MOD(MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1)+1,10),"Z"))
公式逻辑说明
LEN(A1):获取单元格文本的总长度SEQUENCE(LEN(A1))/ROW(INDIRECT("1:"&LEN(A1))):生成从1到文本长度的序列,实现逐个提取字符MID(A1,序列,1):依次提取文本中的每个字符ISNUMBER(字符*1):判断当前字符是否为数字(数字转成数值后返回TRUE,字母则返回FALSE)MOD(数字+1,10):数字加1后对10取模,实现9加1转为0的循环效果- 非数字字符直接替换为
Z TEXTJOIN("",TRUE,...):将所有处理后的字符拼接成完整文本
验证示例
| Before | After |
|---|---|
| ABC123 | ZZZ234 |
| 1A2B3C | 2Z3Z4Z |
| 1A | 2Z |
| 99F | 00Z |
内容的提问来源于stack exchange,提问作者lyall
相关产品推荐
相关产品推荐

