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

Excel 2019按优先级检测单元格关键词子串并输出匹配项

按优先级提取A列中包含的B列关键词(Excel 2019 离线版)

核心思路

用INDEX+MATCH+SEARCH的数组公式组合,按B列从上到下的优先级(降序),依次匹配A列单元格中的关键词,排除已匹配项后输出到右侧列。

公式写法(以关键词在B1:B3为例)

假设:

  • A列为待检测文本,从A2开始
  • B列为关键词列表,优先级从上到下递减(示例:B1=dog,B2=cat,B3=mouse)
  • C、D、E...为匹配结果输出列

1. 第一优先级匹配(C列)

在C2单元格输入以下公式,按Ctrl+Shift+Enter确认数组公式:

=IFERROR(INDEX(B$1:B$3,MATCH(TRUE,ISNUMBER(SEARCH(B$1:B$3,A2)),0)),"")
  • 逻辑:从上到下扫描B列关键词,找到第一个能在A2中匹配到的高优先级关键词,无匹配则返回空。
  • 替换说明:如果关键词范围不是B1:B3,改成实际的单元格区域(比如B$1:B$5)。

2. 第二优先级匹配(D列)

在D2单元格输入以下数组公式(同样按Ctrl+Shift+Enter):

=IFERROR(INDEX(B$1:B$3,MATCH(TRUE,ISNUMBER(SEARCH(B$1:B$3,A2))*(B$1:B$3<>C2),0)),"")
  • 逻辑:在B列中排除已在C列匹配到的关键词,再从上到下找到下一个能匹配A2的关键词。

3. 后续列匹配(E及以后)

每一列都需要排除前面所有已匹配的关键词,比如E2的公式:

=IFERROR(INDEX(B$1:B$3,MATCH(TRUE,ISNUMBER(SEARCH(B$1:B$3,A2))*(B$1:B$3<>C2)*(B$1:B$3<>D2),0)),"")
  • 规律:每增加一列,就在条件中多一个*(B$1:B$3<>上一列单元格)的判断。

补充说明

  • 大小写区分:SEARCH不区分大小写,如果需要严格区分,替换为FIND函数。
  • 批量应用:输入第一行公式后,选中单元格下拉填充即可应用到整列。
  • 空值处理:IFERROR确保无匹配时显示空单元格,避免出现#N/A错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 20:21:42