跳至主要内容

根据多个条件在Excel中返回多个匹配值(完整指南)

Author: Xiaoyang Last Modified: 2025-05-08

Excel用户经常遇到需要提取同时满足多个条件的多个值,并将所有匹配结果显示在一列、一行或合并到单个单元格中的情况。本指南探讨了适用于所有Excel版本的方法,以及在Excel 365和2021中可用的新FILTER函数。


根据多个条件在单个单元格中返回多个匹配值

在Excel中,基于多个条件从单个单元格内提取多个匹配值是一个常见的挑战。这里介绍两种高效的方法。

方法1:使用Textjoin函数(Excel365 / 2021,2019)

要将所有匹配值以分隔符形式合并到一个单元格中,TEXTJOIN函数可以帮您实现。

在空白单元格中输入或复制以下公式,然后按Enter键(Excel 2021和Excel 365),或者在Excel 2019中按Ctrl + Shift + Enter键以获取结果:

=TEXTJOIN(", ", TRUE, IF(($A$2:$A$18=E2)*($B$2:$B$18=F2), $C$2:$C$18, ""))

Return multiple matching values based on multiple criteria in a single cell with textjoin function

此公式的解释:
  • ($A$2:$A$21=E2)*($B$2:$B$21=F2) 检查每一行是否同时满足两个条件:“销售员等于E2”且“月份等于F2”。如果两个条件都满足,则结果为1;否则为0。星号*表示两个条件必须同时成立。
  • IF(..., $C$2:$C$21, "") 如果该行符合条件,则返回产品名称;否则返回空白。
  • TEXTJOIN(", ", TRUE, ...) 将所有非空的产品名称合并到一个单元格中,并用", "分隔。
 

方法2:使用Kutools for Excel

Kutools for Excel 提供了一个强大而简单的解决方案,允许您根据多个条件快速检索并将多个匹配项合并到一个单元格中,无需复杂公式。

Kutools for Excel 提供了超过 300 种高级功能,简化复杂任务,提升创造力与效率。 通过集成 AI 能力,Kutools 能够精准自动执行任务,让数据管理变得轻松简单。Kutools for Excel 的详细信息...         免费试用...

安装 Kutools for Excel 后,请按照以下步骤操作:

  1. 选择您希望根据条件获取所有对应值的数据范围。
  2. 然后,点击 Kutools > 合并与拆分 > 高级合并行,参见截图:
    click Advanced Combine Rows of kutools
  3. 在高级合并行对话框中,请配置以下选项:
    • 选择包含匹配条件的列标题(例如,销售员和月份)。对于每个选定列,点击主键将其定义为查找条件。
    • 点击您希望显示合并结果的列标题(例如,产品)。在合并部分,选择您偏好的分隔符(例如,逗号、空格或自定义分隔符)。
  4. 最后,点击确定按钮。
    specify the options in the dialog box

结果:Kutools 将立即根据每组唯一条件组合将所有匹配值合并到一个单元格中。
Return multiple matching values based on multiple criteria in a single cell with kutools


根据多个条件在一列中返回多个匹配值

当您需要从数据集中提取并显示基于多个条件的多个匹配记录时,将结果以垂直列格式返回,Excel提供了几种强大的解决方案。

方法1:使用数组公式(适用于所有版本)

您可以使用以下数组公式将结果垂直返回到一列中:

1. 在空白单元格中复制或输入以下公式:

=IFERROR(INDEX($C$2:$C$18, SMALL(IF(($A$2:$A$18=$E$2)*($B$2:$B$18=$F$2), ROW($C$2:$C$18)-ROW($C$2)+1), ROW(1:1))), "")

2. 按 Ctrl + Shift + Enter 键获取第一个匹配结果,然后选择第一个公式单元格并向下拖动填充柄直到出现空白单元格,现在所有匹配值都会如下图所示返回:

Return multiple matching values based on multiple criteria in a column with array formula

此公式的解释:
  • $A$2:$A$18=$E$2: 检查销售员是否与单元格E2中的值匹配。
  • $B$2:$B$18=$F$2: 检查月份是否与单元格F2中的值匹配。
  • * 是逻辑AND运算符(两个条件必须同时成立)。
  • ROW($C$2:$C$18)-ROW($C$2)+1: 为每个产品生成相对行号。
  • SMALL(..., ROW(1:1)): 获取第n个最小的匹配行(随着公式向下拖动)。
  • INDEX(...): 返回匹配行中的产品。
  • IFERROR(..., ""): 如果没有更多匹配项,则返回空白单元格。
 

方法2:使用Filter函数(Excel365 / 2021)

如果您使用的是Excel 365或Excel 2021,FILTER函数是返回基于多个条件的多个结果的绝佳选择,因为它简单、清晰,并且能够动态溢出结果,无需复杂的数组公式。

在空白单元格中复制或输入以下公式,然后按Enter键,所有匹配记录都将基于多个条件返回。

=FILTER(C2:C18, (A2:A18=E2)*(B2:B18=F2), "No match")

Return multiple matching values based on multiple criteria in a column with filter function

此公式的解释:
  • FILTER(...) 返回C2:C18中满足两个条件的所有值。
  • (A2:A18=E2)*(B2:B18=F2): 检查销售员和月份是否匹配的逻辑数组。
  • "未匹配": 可选消息,如果没有找到值。

根据多个条件在一行中返回多个匹配值

Excel用户通常需要从数据集中提取满足多个条件的多个值,并以水平(行)方式显示它们。这对于创建动态报告、仪表板或汇总表非常有用,尤其是在垂直空间有限的情况下。在本节中,我们将探讨两种强大的方法。

方法1:使用数组公式(适用于所有版本)

传统的数组公式允许使用INDEX、SMALL、IF和COLUMN函数提取多个匹配值。与垂直提取(基于列)不同,我们调整公式以在行中返回结果。

1. 在空白单元格中复制或输入以下公式:

=IFERROR(INDEX($C$2:$C$18, SMALL(IF(($A$2:$A$18=$E$2)*($B$2:$B$18=$F$2), ROW($C$2:$C$18)-ROW($C$2)+1), COLUMN(A1))), "")

2. 按 Ctrl + Shift + Enter 键获取第一个匹配结果,然后选择第一个公式单元格并向右拖动公式以跨列检索所有结果。

Return multiple matching values based on multiple criteria in a row with array formula

此公式的解释:
  • $A$2:$A$18=$E$2: 检查销售员是否匹配。
  • $B$2:$B$18=$F$2: 检查月份是否匹配。
  • *: 逻辑AND——两个条件必须同时成立。
  • ROW($C$2:$C$18)-ROW($C$2)+1: 创建相对行号。
  • COLUMN(A1): 根据公式向右拖动的距离调整返回哪个匹配项。
  • IFERROR(...): 防止匹配完成后出现错误。
 

方法2:使用Filter函数(Excel365 / 2021)

在空白单元格中复制或输入以下公式,然后按Enter键,所有匹配值都会被提取并排列在一行中。参见截图:

=TRANSPOSE(FILTER(C2:C18, (A2:A18=E2)*(B2:B18=F2), "No match"))

Return multiple matching values based on multiple criteria in a row with filter function

此公式的解释:
  • FILTER(...): 根据两个条件从列C中检索匹配值。
  • (A2:A18=E2)*(B2:B18=F2): 两个条件必须同时成立。
  • TRANSPOSE(...): 将FILTER返回的垂直数组转换为水平数组。

🔚 结论

根据多个条件在Excel中检索多个匹配值可以通过多种方式完成,具体取决于您希望如何显示结果——无论是在列、行还是单个单元格中。

  • 对于使用Excel 365或Excel 2021的用户,FILTER函数提供了一种现代、动态且优雅的解决方案,最大限度地减少了复杂性。
  • 对于使用旧版本的用户,数组公式仍然是功能强大的工具,尽管它们需要更多的设置和注意。
  • 此外,如果您想将结果合并到一个单元格中或更喜欢无代码解决方案,TEXTJOIN函数或像Kutools for Excel这样的第三方工具可以显著简化流程。

选择最适合您的Excel版本和首选布局的方法,您将能够高效准确地处理多条件查找。如果您有兴趣探索更多Excel技巧,我们的网站提供了数千个教程,帮助您掌握Excel


更多相关文章:

  • 在一个逗号分隔的单元格中返回多个查找值
  • 在Excel中,我们可以应用VLOOKUP函数从表格单元格中返回第一个匹配值,但有时我们需要提取所有匹配值,并用特定分隔符(如逗号、破折号等)分隔到一个单元格中,如下图所示。如何在Excel中获取并返回多个查找值到一个逗号分隔的单元格中?
  • 在Google表格中一次返回多个匹配值的Vlookup
  • Google表格中的普通Vlookup函数可以帮助您根据给定数据查找并返回第一个匹配值。但是,有时您可能需要vlookup并返回所有匹配值,如下图所示。您是否有任何好且简单的方法来解决这个任务?
  • 通过下拉列表进行Vlookup并返回多个值
  • 在Excel中,如何通过下拉列表进行vlookup并返回多个对应的值,这意味着当您从下拉列表中选择一个项目时,所有相关的值都会一次性显示出来,如下图所示。本文将逐步介绍解决方案。
  • 在Excel中垂直返回多个匹配值的Vlookup
  • 通常,您可以使用Vlookup函数获取第一个对应的值,但有时您希望根据特定条件返回所有匹配记录。本文将讨论如何vlookup并垂直、水平或合并到一个单元格中返回所有匹配值。

最佳办公效率工具

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

使用 Kutools for Excel 提升您的 Excel 技能,体验前所未有的高效。 Kutools for Excel 提供超过 300 种高级功能来提高生产力并节省时间。 单击此处获取您最需要的功能...


Office Tab 将标签式界面引入 Office,让您的工作更加轻松

  • 在 Word、Excel、PowerPoint 中启用标签式编辑和阅读
  • 在同一窗口的新标签页中打开和创建多个文档,而不是在新窗口中进行操作。
  • 将您的生产力提升 50%,每天为您减少数百次鼠标点击!