根据多个条件在Excel中返回多个匹配值(完整指南)
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, ""))
- ($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 后,请按照以下步骤操作:
- 选择您希望根据条件获取所有对应值的数据范围。
- 然后,点击 Kutools > 合并与拆分 > 高级合并行,参见截图:
- 在高级合并行对话框中,请配置以下选项:
- 选择包含匹配条件的列标题(例如,销售员和月份)。对于每个选定列,点击主键将其定义为查找条件。
- 点击您希望显示合并结果的列标题(例如,产品)。在合并部分,选择您偏好的分隔符(例如,逗号、空格或自定义分隔符)。
- 最后,点击确定按钮。
结果: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 键获取第一个匹配结果,然后选择第一个公式单元格并向下拖动填充柄直到出现空白单元格,现在所有匹配值都会如下图所示返回:
- $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")
- 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 键获取第一个匹配结果,然后选择第一个公式单元格并向右拖动公式以跨列检索所有结果。
- $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"))
- 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并垂直、水平或合并到一个单元格中返回所有匹配值。
- 在Excel中返回两个值之间的匹配数据的Vlookup
- 在Excel中,我们可以应用普通的Vlookup函数根据给定数据获取对应的值。但是,有时我们希望vlookup并返回两个值之间的匹配值,如下图所示,如何在Excel中处理这个任务?
最佳办公效率工具
🤖 | 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%,每天为您减少数百次鼠标点击!