跳至主要内容

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

Author: Xiaoyang Last Modified: 2025-07-31

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并垂直、水平或合并到一个单元格中返回所有匹配值。

最佳 Office 办公效率工具

🤖 Kutools AI 助手:基于智能执行,彻底革新数据分析 生成代码创建自定义公式分析数据并生成图表调用 Kutools Functions
热门功能:查找、选中项的背景色或标记重复项|删除空行|合并列或单元格且不丢失数据|四舍五入(无公式)...
高级 LOOKUP多条件查找 (VLookup)多值查找 (VLookup)多表查找 (VLookup Across Multiple Sheets)模糊查找 (Fuzzy Lookup)...
高级下拉列表快速创建下拉列表依赖型下拉列表多选下拉列表...
列管理器添加指定数量的列移动列切换隐藏列的可见状态比较区域及列...
特色功能网格聚焦设计视图增强编辑栏工作簿 & 工作表管理器资源库(自动文本)|日期提取合并数据加密/解密单元格按列表发送电子邮件超级筛选特殊筛选(筛选粗体/倾斜/删除线等)...
热门15 大工具集12 款文本工具添加文本删除特定字符等)50+ 种图表 类型甘特图等)40+ 实用公式基于生日计算年龄等)19 款插入工具插入二维码按路径插入图片等)12 种转换工具小写金额转大写汇率转换等)7 款合并与分割工具高级合并行分割单元格等)...更多精彩等你发现
使用 Kutools,支持您的首选语言——包括英语、西班牙语、德语、法语、中文及40 多种其他语言!

用 Kutools for Excel 加速你的 Excel 技能,体验前所未有的高效办公。 Kutools for Excel 提供300 多项高级功能,助您提升效率,节省大量时间。点击此处,获取你最需要的功能...


Office Tab 为 Office 带来标签式界面,让你的工作更加轻松

  • 在 Word、Excel、PowerPoint 启用标签式编辑和阅读
  • 在同一窗口的新标签中打开和创建多个文档,无需新建窗口。
  • 办公效率提升50%,每天帮你减少上百次鼠标点击!