Excel表格怎么一次查找多个关键字
用SEARCH或FIND配合SUMPRODUCT、INDEX和MATCH,让一个单元格同时对照一整列关键字,判断是否命中、命中哪一个,并列出避开空白关键字和大小写误判的做法。
在整理客户反馈、合同条款或商品清单时,经常需要判断一段文字里是否包含某几个词中的任意一个,比如备注里出现“退款”“投诉”“延迟”中的任何一个就要标红。如果只会用“查找”对话框,一次只能找一个词,几百行数据逐个查很费时间。Excel 表中搜索多个关键字,可以把关键字写成一列,用一条函数公式对每一行同时判断。
这篇文章适合经常处理文本数据、已经会用基本函数但还没有写过多条件文字匹配公式的读者。读完你能拿到三类公式:判断是否命中、返回命中的关键字、按命中结果筛选。下面的例子默认关键字写在 E2 到 E6,待检查的文字在 A 列。
Excel 表中搜索多个关键字,用什么函数公式?一句话结论:用 SEARCH 判断位置,再用 SUMPRODUCT 汇总
先把关键字列表固定在一列,然后让 SEARCH 逐个去查每个关键字在单元格里的位置,ISNUMBER 把找到的位置转换成 TRUE 或 FALSE,最后 SUMPRODUCT 把结果加总。加总大于 0,说明至少命中一个关键字。不同需求对应的做法如下:
| 你的情况 | 推荐做法 | 原因 |
|---|---|---|
| 只想知道是否命中任一关键字 | =SUMPRODUCT(--ISNUMBER(SEARCH(E2:E6,A2)))>0 | 一条公式,返回 TRUE 或 FALSE,便于筛选 |
| 想知道命中的是哪一个关键字 | INDEX 加 MATCH 组合 | 能直接显示关键字本身,方便统计 |
| 关键字区分大小写,如型号、编码 | 把 SEARCH 换成 FIND | FIND 严格区分大小写,且不支持通配符 |
| 只要求整个单元格等于某个关键字 | =COUNTIF(E2:E6,A2)>0 | 这是完全匹配,不是包含匹配,别混用 |
| 关键字列表里有空白格 | 在公式中加入“不为空”条件 | 空白关键字会匹配所有文字,导致全部命中 |
开始之前:先确认这几点
1. 关键字是“包含”还是“完全相同”。 公式里的 SEARCH 和 FIND 判断的是文字中是否出现这段字符,所以“退款申请”也会被“退款”命中。如果你要的是整格完全一致,应该用 COUNTIF,两者结果会不同,选错会漏掉或多算数据。
2. 大小写是否重要。 SEARCH 不区分大小写,输入“excel”也能找到“Excel”。对英文品牌名、产品型号这类内容通常方便,但遇到“AB12”和“ab12”需要区分的编码,就要改用 FIND。
3. 关键字里是否含有通配符。 SEARCH 把问号和星号当作通配符,关键字“Q?”会匹配“QA”“Q1”等多种情况。如果关键字本身包含这两个符号,应先在前面加波浪号转义,或改用 FIND。
4. 关键字列表是否干净。 列表中有空白单元格时,SEARCH 会把空字符串视为任何文字都能匹配,整列数据都会被判定为命中。动手前先检查列表长度,删掉多余空行。
5. 数据来源是否可以直接复制。 如果关键字或待检查文字来自 PDF,文字需要能被选中复制。扫描件里的文字无法直接选中,要先做 OCR 识别,再把结果粘贴到 Excel,否则公式查不到任何内容。
在 Excel 里按关键字列表查找的步骤
- 建立关键字列表。 在 E 列从 E2 开始逐行写入关键字,例如“退款”“投诉”“延迟”,中间不留空行,列表尽量控制在几十个以内,便于检查。
- 选中结果单元格。 在 B2 输入判断公式,用于检查 A2 是否包含任一关键字。
- 输入判断公式。 输入 =SUMPRODUCT(--ISNUMBER(SEARCH($E$2:$E$6,A2)))>0,按回车,结果为 TRUE 表示命中。
- 排除空白关键字。 如列表可能留有空格,把公式改为 =SUMPRODUCT(($E$2:$E$6<>"")*ISNUMBER(SEARCH($E$2:$E$6,A2)))>0,只统计非空关键字。
- 返回命中的关键字。 在 C2 输入 =IFERROR(INDEX($E$2:$E$6,MATCH(1,INDEX(($E$2:$E$6<>"")*ISNUMBER(SEARCH($E$2:$E$6,A2)),0),0)),"未命中"),结果显示列表中第一个命中的词。
- 向下填充。 选中 B2 和 C2,拖动右下角的填充柄到最后一行数据,所有行同时计算。
- 需要区分大小写时替换函数。 把公式中的 SEARCH 换成 FIND,其余结构不变,再次检查结果是否符合预期。
做完后逐项核对
公式算出结果后,不要直接用于统计,先逐项检查。
| 检查项 | 怎么看 | 有问题怎么办 |
|---|---|---|
| 命中数量是否合理 | 对照几十行数据手工判断,看结果是否一致 | 检查关键字是否含有空格、标点或全角字符 |
| 是否出现“全部命中” | 如果几乎每行都是 TRUE,先看关键字列表中是否有空白格 | 加上“不为空”条件,重新填充公式 |
| 大小写是否误判 | 挑选几条大小写不同的数据比对 | 需要区分时改用 FIND |
| 通配符是否误匹配 | 查看含问号或星号的关键字命中结果 | 在符号前加波浪号,或改用 FIND |
| 返回的关键字是否正确 | 看 C 列是否与 B 列判断一致,未命中是否显示“未命中” | 如果列表顺序影响结果,调整关键字顺序,或改用计数方法 |
| 扫描件数据是否识别准确 | 对照原文件抽查关键字所在行 | 对 PDF 先做 OCR,并人工核对识别结果,OCR 和机器翻译都可能出错 |
📊 核心对比
实际工作中常见三种判断方式,各自适用的场景不同:
| 方式 | 适合场景 | 注意事项 |
|---|---|---|
| SUMPRODUCT 加 SEARCH | 包含匹配,不区分大小写,如“备注里出现某词” | 关键字含问号或星号时会被当作通配符 |
| SUMPRODUCT 加 FIND | 需要区分大小写或处理编码,如型号、产品代码 | 不支持通配符,匹配更严格 |
| COUNTIF | 整格完全相同的匹配,写法简单、计算快 | 不能识别句子中间夹着关键字的情况 |
如果不确定用哪种,可以先用一小段样本数据(例如十行)分别试一遍,看结果是否符合人工判断,再套用到整张表。
❓ 常见问题(FAQ)
1. 关键字超过一百个,公式还能用吗?
可以用,但要注意计算量。关键字越多、数据行越多,SUMPRODUCT 的计算越慢。更稳妥的做法是把关键字分组,分开写几条公式,或者把需要长期使用的列表单独保存在一个工作表里。
2. 查到的结果怎么只保留命中的行?
在判断列加上结果后,选中表头,使用“筛选”功能,只显示结果为 TRUE 的行。这样不需要改动原始数据,核对和复制都方便。
3. 为什么公式在别人的电脑上显示结果不一样?
多半是关键字列表的空白格、大小写设置或者区域的列表分隔符不同导致的。把列表和样本数据一起发给对方,并说明判断标准,能减少这类差异。
4. 关键字在 PDF 里,怎么把它们放进 Excel?
如果 PDF 是可以选中文字的电子版,直接复制粘贴即可。扫描版则需要先做 OCR,再复制。OmniDoc 桌面客户端的 PDF 编辑器支持 OCR,也可以把 PDF 导出为 Excel,之后再用上面的公式处理,导出后同样要核对内容。桌面客户端可以在 download.omnidoc.top 下载。
5. 能不能一次把命中的所有关键字都列出来?
用上面的公式只能返回第一个命中项。若要列出全部命中项,可以在 Excel 365 中尝试 TEXTJOIN 配合 IF 的写法,或者为每个关键字单独添加一列判断,这样更直观,也便于后续统计。
📝 总结
Excel 表中搜索多个关键字,核心是把关键字放进一列,用 SUMPRODUCT 加 SEARCH 判断是否命中,用 INDEX 加 MATCH 取出具体关键字。写公式前先确认包含与完全相同的区别、大小写要求和空白格问题,结果出来后抽样核对,就能放心用于统计。


