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

Excel中如何定位文本字符串内四位数字的位置?

查找文本中四位数字的起始位置

需求说明

你需要定位文本字符串中类似4111的四位数字的起始位置,以下是针对Excel新手的实用公式方案:


一、找第一个四位数字的起始位置

通用版公式(适配所有Excel版本)

=MATCH(TRUE,ISNUMBER(--MID(A1,ROW(INDIRECT("1:"&LEN(A1)-3)),4)),0)

注意:旧版Excel需按 Ctrl+Shift+Enter 作为数组公式输入,新版Excel(365/2021+)直接回车即可。

公式拆解(新手易懂版):

  1. LEN(A1)-3:计算文本总长度,减去3是因为要提取4位数字,起始位置不能超过总长度-3,避免提取到不完整的数字。
  2. MID(A1,ROW(INDIRECT("1:"&LEN(A1)-3)),4):从文本的第1位开始,依次提取连续4个字符,生成所有可能的4位字符片段。
  3. --:把提取的字符片段转换成数字,非纯数字片段会变成错误值。
  4. ISNUMBER(...):判断转换后的结果是否为数字,是则返回TRUE,否则返回FALSE。
  5. MATCH(TRUE,...):找到第一个TRUE对应的位置,就是第一个四位数字的起始位置。

动态数组版公式(Excel 365/2021+适用)

如果你的Excel支持动态数组,用这个更简单:

=XMATCH(TRUE,ISNUMBER(--MID(A1,SEQUENCE(LEN(A1)-3),4)),0)

或者直接提取所有符合条件的起始位置(如果有多个四位数字):

=FILTER(SEQUENCE(LEN(A1)-3),ISNUMBER(--MID(A1,SEQUENCE(LEN(A1)-3),4)))

二、找最后一个四位数字的起始位置

如果你需要定位最后一个四位数字的位置,可基于你之前用的LOOKUP逻辑调整:

=LOOKUP(1,0/ISNUMBER(--MID(A1,ROW(INDIRECT("1:"&LEN(A1)-3)),4)),ROW(INDIRECT("1:"&LEN(A1)-3)))

逻辑说明:

0/ISNUMBER(...)会把TRUE转换成0,FALSE转换成错误值,LOOKUP(1,0/...)会找到最后一个0对应的行号,也就是最后一个四位数字的起始位置。


新手提示

  • 把公式中的A1替换成你实际存放目标文本的单元格。
  • 测试时可以先在单元格中输入你提供的示例文本,再输入公式验证结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 08:20:27