跳至主要内容

从列表中检索单元格中的第一个匹配值

Author: Amanda Li Last Modified: 2025-05-07

假设您有一个关键词列表,要检索特定单元格中出现的第一个关键词,而该单元格包含其他多个值,您需要借助 AGGREGATE SEARCH 函数使用 INDEX MATCH 公式。

retrieve first matching value in cell against a list 1

如何从列表中检索单元格中的第一个匹配值?

要在单元格中根据上述表格中的关键词列表获取第一个匹配的关键词,这意味着我们需要执行包含匹配而不是精确匹配。为此,您可以使用 SEARCH 函数将关键词在单元格中出现的位置以数字形式传递给 AGGREGATE 函数。然后通过将 AGGREGATE 的 function_num 设置为 15 并将 ref2 参数设置为 1来获取最小的数字。接着使用 MATCH 定位第一个最小值,并将位置编号传递给 INDEX 以检索该位置的值。

通用语法

=INDEX(keyword_rng,MATCH(AGGREGATE(15,6,SEARCH(keyword_rng,lookup_cell),1),SEARCH(keyword_rng,lookup_cell),0))

√ 注意:这是一个数组公式,需要您使用 Ctrl + Shift + Enter 输入。

  • keyword_rng: 包含关键词的单元格范围。
  • lookup_cell: 要查找是否包含关键词的单元格。

要检索单元格 B5 中相对于关键词列出现的第一个匹配关键词,请在单元格 C5 中复制或输入以下公式,并按 Ctrl + Shift + Enter 获取结果:

=INDEX($E$5:$E$7,MATCH(AGGREGATE(15,6,SEARCH($E$5:$E$7,B5),1),SEARCH($E$5:$E$7,B5),0))

√ 注意:上面的美元符号 ($) 表示绝对引用,这意味着当您将公式移动或复制到其他单元格时,公式中的 keyword_rng 不会改变。但是,由于您希望 lookup_cell 是动态的,因此没有为其添加美元符号。输入公式后,向下拖动填充柄以将公式应用到下方的单元格。

retrieve first matching value in cell against a list 2

公式说明

=INDEX($E$5:$E$7,MATCH(AGGREGATE(15,6,SEARCH($E$5:$E$7,B5)SEARCH($E$5:$E$7,B5),1),SEARCH($E$5:$E$7,B5)SEARCH($E$5:$E$7,B5),0))

  • SEARCH($E$5:$E$7,B5): SEARCH 函数返回范围 $E$5:$E$7 中每个关键词在单元格 B5 中找到时的位置(以数字表示),如果未找到则返回 #VALUE! 错误。结果将以如下数组形式呈现:{15;11;#VALUE!}
  • AGGREGATE(15,6,AGGREGATE(15,6,SEARCH($E$5:$E$7,B5),1),1) = AGGREGATE(15,6,AGGREGATE(15,6,{15;11;#VALUE!},1),1): AGGREGATE 函数在 function_num 为 15选项为 6 时,将根据 ref2 参数 1 返回数组中的最小值,同时忽略错误值。因此,此片段将返回 11
  • MATCH(MATCH(AGGREGATE(15,6,SEARCH($E$5:$E$7,B5)SEARCH($E$5:$E$7,B5),1),,SEARCH($E$5:$E$7,B5)SEARCH($E$5:$E$7,B5),0),0) = MATCH(MATCH(11,,{15;11;#VALUE!},0),0): match_type 为 0 强制 MATCH 函数执行精确匹配并返回 11 在数组 {15;11;#VALUE!} 中的位置。因此,函数将返回 2
  • INDEX($E$5:$E$7,MATCH(AGGREGATE(15,6,SEARCH($E$5:$E$7,B5)SEARCH($E$5:$E$7,B5),1),SEARCH($E$5:$E$7,B5)SEARCH($E$5:$E$7,B5),0)) = INDEX($E$5:$E$7,2): INDEX 函数随后返回范围 $E$5:$E$7 中的第 2 个值,即 bbb

备注

  • 如果单元格中没有关键词,则会返回 #NUM! 错误。
  • 该公式不区分大小写。若要执行区分大小写的匹配,可以简单地用 FIND 函数替换 SEARCH 函数。

相关函数

Excel INDEX 函数

Excel INDEX 函数根据给定的位置从范围或数组中返回显示的值。

Excel MATCH 函数

Excel MATCH 函数在单元格范围内搜索特定值,并返回该值的相对位置。

Excel SEARCH 函数

在 Excel 中,SEARCH 函数可以帮助您从给定的文本字符串中查找特定字符或子字符串的位置,如下图所示。本教程将介绍如何在 Excel 中使用此 SEARCH 函数。

Excel AGGREGATE 函数

Excel AGGREGATE 函数返回诸如 SUM、COUNT、SMALL 等计算的汇总结果,并具有忽略错误和隐藏行的选项。


相关公式

从单元格中检索列表中的第一个值

要从特定单元格中检索在某个范围内列出的第一个关键词,而该单元格包含多个值之一,您必须使用一个相当复杂的数组公式,结合 INDEX、MATCH、ISNUMBER 和 SEARCH 函数。

使用 INDEX 和 MATCH 进行精确匹配

如果您需要找出 Excel 中列出的关于特定产品、电影或人物等的信息,应该充分利用 INDEX 和 MATCH 函数的组合。

检查单元格是否包含特定文本

这里提供的教程提供了一些公式来检查单元格是否包含特定文本,并返回 TRUE 或 FALSE,如下图所示,并解释了参数以及公式的工作原理。

检查单元格是否包含所有内容

假设在 Excel 中,E 列中有一组值列表,您想检查 B 列中的单元格是否包含 E 列中的所有值,并返回 TRUE 或 FALSE,如下图所示。本教程提供了用于解决此任务的公式。

检查单元格是否包含多项内容之一

本教程提供了一个公式,用于检查单元格是否包含 Excel 中的多个值之一,并解释了公式中的参数及其工作原理。


最佳的办公生产力工具

Kutools for Excel - 助您脱颖而出

🤖 Kutools AI 助手:基于以下功能彻底改变数据分析方式:智能执行   |  生成代码  |  创建自定义公式  |  分析数据并生成图表  |  调用Kutools函数
热门功能查找、高亮或标记重复项  |  删除空行  |  合并列或单元格而不丢失数据  |  四舍五入无需公式 ...
超级VLookup多条件  |  多值  |  跨多个工作表  |  模糊查找...
高级下拉列表简易下拉列表  |  级联下拉列表  |  多选下拉列表...
列管理器添加指定数量的列  |  移动列  |  切换隐藏列的可见状态  比较列以 选择相同和不同的单元格 ...
精选功能网格聚焦  |  设计视图  |  增强编辑栏  |  工作簿与工作表管理器 | 资源库(自动文本)  |  日期提取  |  合并数据  |  加密/解密单元格  |  按列表发送电子邮件  |  超级筛选  |  特殊筛选(筛选粗体/斜体/删除线...) ...
排名前15的工具集12个 文本 工具添加文本删除特定字符 ...)  |  50多种 图表 类型甘特图 ...)  |  40多种实用 公式基于生日计算年龄 ...)  |  19个 插入 工具插入二维码从路径插入图片 ...)  |  12个 转换 工具小写金额转大写汇率转换 ...)  |  7个 合并与拆分 工具高级合并行分割Excel单元格 ...)  |  ... 还有更多

Kutools for Excel拥有超过300种功能,确保您需要的功能只需一键即可实现...


Office Tab - 在Microsoft Office(包括Excel)中启用标签式阅读和编辑

  • 一秒内切换数十个打开的文档!
  • 每天为您减少数百次鼠标点击,告别鼠标手。
  • 在查看和编辑多个文档时,您的工作效率将提高50%。
  • 为Office(包括Excel)带来高效的标签页,就像Chrome、Edge和Firefox一样。