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

如何用Right、Left、Mid、LEN和FIND提取指定格式字符串的目标内容

字符串数据提取问题

预期输出

数据名字姓氏编号日期
NM1*IL*1*EEKS*MILBORD****MI*123456789~EEKSMILBORD123456789
DTP*472*D9*20240212~20240212

当前提取结果(存在错误)

数据MID函数结果名字编号日期
NM1*IL*1*EEKS*MILBORD****MI*123456789~EEKS*MILBORD****MI*123456789~EEKBORD****MI*123456789
DTP*472*D9*20240212~20240212~

当前使用的公式

  • D列MID函数:
    =MID(A15,FIND("NM1*IL*1*",A15)+9,LEN(A15)-FIND("NM1*IL*1*",A15))
    
  • 提取名字:
    =LEFT(D15,FIND("*",D15)-1)
    
  • 提取编号:
    =RIGHT(A15,FIND("****MI*",A15))
    
  • 提取日期:
    =RIGHT(A16,FIND("*D9*",A16))
    

修正后的提取公式

提取名字(NM1开头行)

=MID(A1,FIND("NM1*IL*1*",A1)+9,FIND("*",A1,FIND("NM1*IL*1*",A1)+9)-FIND("NM1*IL*1*",A1)-9)

直接定位NM1*IL*1*结束位置到下一个*的区间,精准截取名字内容。

提取姓氏(NM1开头行)

=MID(A1,FIND("*",A1,FIND("NM1*IL*1*",A1)+9)+1,FIND("****MI*",A1)-FIND("*",A1,FIND("NM1*IL*1*",A1)+9)-1)

先定位名字后的第一个*,再找到****MI*的起始位置,截取两者间的姓氏内容。

提取编号(NM1开头行)

=MID(A1,FIND("****MI*",A1)+6,FIND("~",A1)-FIND("****MI*",A1)-6)

定位****MI*结束位置到波浪号~的区间,精准截取编号。

提取日期(DTP开头行)

=MID(A1,FIND("*D9*",A1)+4,FIND("~",A1)-FIND("*D9*",A1)-4)

定位*D9*结束位置到波浪号~的区间,自动排除波浪号,提取纯日期。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 14:07:04