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

Excel 2016动态文本中提取店名的公式问题求助

Excel 2016:提取含四位数字的动态店名

问题描述

有两个动态文本字符串,需定位其中的四位数字(如示例中的8555),以此提取完整店名(如Amazing Stores 2584,店名长度不固定,无法使用RIGHT函数)。现有公式仅对第二个文本有效,对第一个无效,二者仅日期和店名后的数字存在差异。

原使用公式:

  • 定位四位数字位置:=FIND(LOOKUP(10^15,MID(A2,ROW(INDIRECT("1:"&LEN(A2))),5)+0),A2)+6(单元格B1)
  • 计算文本长度:=LEN(A1)(单元格C1)
  • 提取店名:=RIGHT(A1,C1-B1)

限制条件:

  1. 无法使用分列功能
  2. 文本长度动态变化,无固定值
  3. 店名起始位置不固定,无法直接使用MID函数
  4. 使用Excel 2016,无法使用文本拆分功能

解决方案

原公式失效原因是LOOKUP查找的是5位数字,若文本中存在其他更长数字(如订单号)会导致定位错误。以下是适配Excel 2016的修正方案,所有数组公式需按Ctrl+Shift+Enter确认输入:

步骤1:定位四位数字的起始位置

在空白单元格(如B1)输入数组公式,找到文本中最后一组四位连续数字的起始位置:

=MAX(IF(ISNUMBER(--MID(A1,ROW(INDIRECT("1:"&LEN(A1)-3)),4)),ROW(INDIRECT("1:"&LEN(A1)-3))))

步骤2:定位店名的起始位置

在空白单元格(如C1)输入数组公式,找到四位数字左侧最近的非字母/空格字符的位置,+1得到店名的起始点:

=MAX(IF((NOT(ISNUMBER(--MID(A1,ROW(INDIRECT("1:"&B1-1)),1))))*(MID(A1,ROW(INDIRECT("1:"&B1-1)),1)<>" "),ROW(INDIRECT("1:"&B1-1))))+1

步骤3:提取完整店名

在空白单元格(如D1)输入公式,提取从店名起始位置到四位数字结束位置的内容:

=TRIM(MID(A1,C1,B1+3-C1+1))

简化版直接提取公式

若文本中仅存在一组四位数字,可直接用以下数组公式提取店名:

=TRIM(MID(A1,MAX(IF((NOT(ISNUMBER(--MID(A1,ROW(INDIRECT("1:"&MATCH(TRUE,ISNUMBER(--MID(A1,ROW(INDIRECT("1:"&LEN(A1)-3)),4)),0)-1)),1))))*(MID(A1,ROW(INDIRECT("1:"&MATCH(TRUE,ISNUMBER(--MID(A1,ROW(INDIRECT("1:"&LEN(A1)-3)),4)),0)-1)),1)<>" "),ROW(INDIRECT("1:"&MATCH(TRUE,ISNUMBER(--MID(A1,ROW(INDIRECT("1:"&LEN(A1)-3)),4)),0)-1)))+1,MATCH(TRUE,ISNUMBER(--MID(A1,ROW(INDIRECT("1:"&LEN(A1)-3)),4)),0)+3-(MAX(IF((NOT(ISNUMBER(--MID(A1,ROW(INDIRECT("1:"&MATCH(TRUE,ISNUMBER(--MID(A1,ROW(INDIRECT("1:"&LEN(A1)-3)),4)),0)-1)),1))))*(MID(A1,ROW(INDIRECT("1:"&MATCH(TRUE,ISNUMBER(--MID(A1,ROW(INDIRECT("1:"&LEN(A1)-3)),4)),0)-1)),1)<>" "),ROW(INDIRECT("1:"&MATCH(TRUE,ISNUMBER(--MID(A1,ROW(INDIRECT("1:"&LEN(A1)-3)),4)),0)-1)))+1)+1)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 19:25:28