在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): 检查匹配卖家和月份的逻辑数组。
- "No match": 如果未找到任何值,可选消息。
基于多个条件在一行中返回多个匹配值
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: 检查月份是否匹配。
- *: 逻辑与——两个条件都必须为真。
- 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并返回所有匹配值,如下图所示。您是否有任何好的简单方法在Google表格中解决此任务?
- 从下拉列表中Vlookup并返回多个值
- 在Excel中,如何通过下拉列表vlookup并返回多个对应的值,这意味着当您从下拉列表中选择一个项目时,所有相关的值都会一次性显示出来,如下图所示。本文将逐步介绍解决方案。
- 在Excel中垂直返回多个匹配值的Vlookup
- 通常,您可以使用Vlookup函数获取第一个对应的值,但有时您希望根据特定条件返回所有匹配记录。本文将讨论如何进行vlookup并垂直、水平或合并到一个单元格中返回所有匹配值。
- 在Excel中Vlookup并返回两个值之间的匹配数据
- 在Excel中,我们可以应用普通的Vlookup函数根据给定数据获取对应的值。但是,有时我们希望vlookup并返回两个值之间的匹配值,如下图所示,如何在Excel中处理此任务?
最佳Office办公效率工具
🤖 | 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%的工作效率,每天为您减少数百次鼠标点击!
所有Kutools加载项,一键安装
Kutools for Office套件包含Excel、Word、Outlook和PowerPoint的插件,以及Office Tab Pro,非常适合跨Office应用团队使用。





- 全能套装——Excel、Word、Outlook和PowerPoint插件+Office Tab Pro
- 单一安装包、单一授权——数分钟即可完成设置(支持MSI)
- 协同更高效——提升Office应用间的整体工作效率
- 30天全功能试用——无需注册,无需信用卡
- 超高性价比——比单独购买更实惠