跳至主要内容

Kutools for Office — 一套工具,五种功能。事半功倍。

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

Author Xiaoyang Last modified

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): 检查匹配卖家和月份的逻辑数组。
  • "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键获取第一个匹配结果,然后选择第一个公式单元格并将公式向右拖动到列以检索所有结果。

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: 检查月份是否匹配。
  • *: 逻辑与——两个条件都必须为真。
  • 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并返回所有匹配值,如下图所示。您是否有任何好的简单方法在Google表格中解决此任务?
  • 从下拉列表中Vlookup并返回多个值
  • 在Excel中,如何通过下拉列表vlookup并返回多个对应的值,这意味着当您从下拉列表中选择一个项目时,所有相关的值都会一次性显示出来,如下图所示。本文将逐步介绍解决方案。
  • 在Excel中垂直返回多个匹配值的Vlookup
  • 通常,您可以使用Vlookup函数获取第一个对应的值,但有时您希望根据特定条件返回所有匹配记录。本文将讨论如何进行vlookup并垂直、水平或合并到一个单元格中返回所有匹配值。

最佳Office办公效率工具

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

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