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

Excel公式:提取字符串中最后一个通配符关键词前的文本

Excel公式:提取最后一个通配符关键词前的文本(不区分大小写)

需求说明

提取文本字符串中最后一个特定关键词之前的全部内容,要求支持不区分大小写匹配和通配符(如*、?)匹配。

示例

  • 文本所在单元格(A2):
    Johnny is looking for a full-time job, because the job he once had went out of business, and although he is currently working full time he is not happy, and is aggressively seeking a more permanent full-time job that offers benefits and 1st Shift.
  • 搜索关键词所在单元格(B2):Full*time
  • 关键词在文本中出现次数:3次
  • 提取结果(C2):
    Johnny is looking for a full-time job, because the job he once had went out of business, and although he is currently working full time he is not happy, and is aggressively seeking a more permanent full-time

现有公式局限

原SUBSTITUTE类公式无法支持通配符和不区分大小写匹配:

=LEFT(A2,FIND("|",SUBSTITUTE(A2,B2,"^",LEN(A2)-LEN(SUBSTITUTE(A2,B2,""))))-1)

你提到的用于提取关键词最后一次出现后内容的公式为:

=RIGHT(A2,LEN(A2)-1-MAX(IFERROR(SEARCH(B2,A2,ROW($1:$999)),0))+1)

解决方案公式

通用数组公式(支持所有Excel版本)

需按Ctrl+Shift+Enter组合键确认输入(旧版Excel必填,新版可直接回车):

=LEFT(A2,MAX(IFERROR(SEARCH(B2,A2,ROW($1:$999)),0))-1)

动态数组公式(适用于Excel 365/2021及以后版本)

无需按组合键,直接回车即可:

=LEFT(A2,MAX(IFERROR(SEARCH(B2,A2,SEQUENCE(LEN(A2))),0))-1)

公式说明

  1. SEARCH(B2,A2,位置):原生支持通配符和不区分大小写,从指定位置开始搜索关键词的起始坐标
  2. ROW($1:$999)/SEQUENCE(LEN(A2)):生成连续的起始搜索位置,覆盖文本的每个字符位
  3. IFERROR(...,0):处理关键词不存在的情况,避免返回错误值
  4. MAX(...):定位关键词最后一次出现的起始位置
  5. LEFT(A2, 位置-1):提取文本开头到该位置前的全部内容

异常处理(可选)

若关键词不存在时希望返回原文本,可嵌套IFERROR:

=IFERROR(LEFT(A2,MAX(IFERROR(SEARCH(B2,A2,ROW($1:$999)),0))-1),A2)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 20:52:33