You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Excel中获取单元格内子字符串的倒序位置(从0开始)

Excel 获取倒序分隔子串的索引(从0开始)

假设存储分号分隔参数的单元格为A1(示例值:a;c;d;b),要查找的目标子串在B1,可通过以下公式实现需求:

适用于Excel 365/2021(动态数组版本)

=XMATCH(B1, SORTBY(TEXTSPLIT(A1,";"), SEQUENCE(COUNTA(TEXTSPLIT(A1,";")),,COUNTA(TEXTSPLIT(A1,";")),-1)))-1

公式逻辑拆解:

  • TEXTSPLIT(A1,";"):将A1内容按分号拆分为动态数组,示例结果为{"a","c","d","b"}
  • SEQUENCE(COUNTA(...),,COUNTA(...),-1):生成从元素总数开始倒序的序列,示例中元素总数为4,序列为{4,3,2,1}
  • SORTBY(...):用倒序序列对拆分后的数组排序,实现数组反转,示例结果为{"b","d","c","a"}
  • XMATCH(B1, ...):查找目标子串在反转数组中的位置(从1开始计数),最后减1得到从0开始的索引

适用于旧版Excel(无动态数组)

若你的Excel版本不支持动态数组函数,可使用以下数组公式(输入后按Ctrl+Shift+Enter确认):

=IFERROR(MATCH(B1, MID(SUBSTITUTE(A1,";",REPT(" ",LEN(A1))), LEN(A1)*(COUNTA(FILTERXML("<t><s>"&SUBSTITUTE(A1,";","</s><s>")&"</s></t>"))-ROW(INDIRECT("1:"&COUNTA(FILTERXML("<t><s>"&SUBSTITUTE(A1,";","</s><s>")&"</s></t>"))))+1, LEN(A1)), 0)-1, -1)

说明:

  • 借助FILTERXML拆分字符串获取元素总数,通过MID和REPT生成倒序的拆分元素列表,再用MATCH查找位置后减1得到索引
  • 若目标子串不存在,公式返回-1,可根据需求调整返回值

测试验证:

  • 输入a返回3
  • 输入c返回2
  • 输入d返回1
  • 输入b返回0

内容的提问来源于stack exchange,提问作者s_b

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 21:10:36