搜索
首页专题excelExcel索引与多个标准匹配 - 公式示例

本教程显示了如何使用索引和匹配以及其他几种方式在Excel中使用多个标准查找。

尽管Microsoft Excel为垂直和水平查找提供了特殊功能,但专家用户通常会用索引匹配替换它们,这在许多方面都优于vlookup和hlookup。除其他外,它可以在列和行中查找两个或多个标准。本教程详细说明了语法和内部力学,以便您可以轻松地调整特定需求的公式。为了使示例更容易遵循,欢迎您下载我们的示例工作簿。

Excel索引与多个标准匹配

在使用大型数据库时,您有时可能会发现自己需要找到某些东西,但没有唯一的搜索标识符。在这种情况下,有几种条件的查找是唯一的解决方案。

要根据单独列中的多个标准查找值,请使用此通用公式:

{= index( return_range ,match(1,( criteria1 = range1 ) *( criteria2 = range2 ) *(…),0)}}}}

在哪里:

  • return_range是返回值的范围。
  • 标准1标准2 ,…是要满足的条件。
  • Range1Range2 ,…是应测试相应标准的范围。

重要说明!这是一个数组公式,必须在Ctrl Shift Enter中完成。这将使您的公式包含在{curly brokkets}中,这是Excel中数组公式的视觉迹象。不要尝试手动键入牙套,那将行不通!

公式是标志性索引匹配的高级版本,该版本根据单个标准返回匹配项。为了评估多个标准,我们使用在数组公式中用作和运算符的乘法操作。下面,您将找到一个现实生活中的示例和逻辑的详细说明。

提示。在Excel 365和2021中,您可以使用具有多个标准的Xlookup公式。

索引与多个标准匹配 - 公式示例

在此示例中,我们将在其自己的行上使用所谓的“扁平文件”格式中的表格(在我们的情况下为月度数字)。我们的目标是在特定地区和月份中检索某些项目的销售数字。

借助以下单元格中的源数据和标准:

  • return_range (销售)-D2:D13
  • 标准1 (目标区域)-G1
  • 标准2 (目标月)-G2
  • 标准3 (目标项目)-G3
  • Range1 (区域)-A2:A13
  • 范围2 (月)-B2:B13
  • 范围3 (项目)-C2:C13

该公式采用以下形状:

=INDEX(D2:D13, MATCH(1, (G1=A2:A13) * (G2=B2:B13) * (G3=C2:C13), 0))

输入公式,例如在G4中,通过按CTRL Shift Enter来完成它,您将获得以下结果:

Excel索引与多个标准匹配 - 公式示例

该公式如何工作

最棘手的部分是匹配功能,所以让我们首先弄清楚:

MATCH(1, (G1=A2:A13) * (G2=B2:B13) * (G3=C2:C13), 0))

您可能还记得,匹配(lookup_value,lookup_array,[match_type])在查找数组中搜索查找值,并在数组中返回该值的相对位置。

在我们的公式中,论点如下:

  • Lookup_value :1
  • Lookup_array :( g1 = a2:a13) *(g2 = b2:b13) *(g3 = c2:c13)
  • match_type :0

第1参数是晶体清晰的 - 函数搜索数字1。设置为0的3 rd参数表示“精确匹配”,即公式返回第一个发现的值,该值完全等于查找值。

问题是 - 为什么我们要搜索“ 1”?要获取答案,让我们仔细查看查找阵列,在该阵列中,我们将每个标准与相应的范围进行比较:G1中的目标区域与所有区域(A2:A13)(A2:A13),G2中的目标月对所有月份(B2:B13)和G3中的目标项目(C2:C2:C13)。中间结果是3个真实和错误的阵列,而true表示满足已测试条件的值。要可视化这一点,您可以在公式中选择单个表达式,然后按F9键查看每个表达式评估的内容:

Excel索引与多个标准匹配 - 公式示例

乘法操作分别将真实值和错误值分别转换为1和0:

{1;1;1;1;1;1;0;0;0;0;0;0} * {0;0;1;1;0;0;0;0;1;1;0;0} * {1;0;1;0;1;0;1;0;1;0;1;0}

而且由于乘以0总是给出0,因此结果数组仅在满足所有标准的行中只有1个:

{0;0;1;0;0;0;0;0;0;0;0;0}

上面的数组转到匹配的Lookup_array参数。使用Lookup_value为1,该函数返回所有标准为真的行的相对位置(在我们的情况下第3行)。如果数组中有几个1,则返回第一个位置。

匹配返回的数字直接转到索引的row_num参数(array,row_num,[column_num])函数:

=INDEX(D2:D13, 3)

它产生的结果为$ 115,这是D2:D13数组中的3 rd值。

具有多个标准的非阵列索引匹配公式

上一个示例中讨论的阵列公式适合经验丰富的用户。但是,如果您正在为他人建立一个公式,并且某人不知道数组功能,他们可能会无意中打破它。例如,用户可以单击您的公式检查它,然后按Enter而不是Ctrl Shift Enter 。在这种情况下,明智的做法是避免阵列并使用更具防弹性的常规公式:

index( return_range ,match(1,index(( criteria1 = range1 ) *( criteria2 = range2 ) *(..),0,1),0),0))

对于我们的示例数据集,公式如下:

=INDEX(D2:D13, MATCH(1, INDEX((G1=A2:A13) * (G2=B2:B13) * (G3=C2:C13), 0, 1), 0))

Excel索引与多个标准匹配 - 公式示例

该公式如何工作

由于索引函数可以本地处理数组,因此我们添加了另一个索引来处理1和0的数组,该数组是通过乘以两个或多个true/false数组创建的。第二个索引配置为0 row_num参数,以使公式返回整个列数组而不是单个值。由于它是一个单列数组,因此我们可以安全地为Column_num提供1:

INDEX({0;0;1;0;0;0;0;0;0;0;0;0}, 0, 1) returns {0;0;1;0;0;0;0;0;0;0;0;0}

此数组传递给匹配功能:

MATCH(1, {0;0;1;0;0;0;0;0;0;0;0;0}, 0)

匹配找到所有标准为真的行(更准确地说,是指定数组中该行的相对位置),并将该编号传递给第一个索引的Row_num参数:

=INDEX(D2:D13, 3)

索引与行和列中的多个标准匹配

此示例显示了如何通过在行和列中测试两个或多个标准来执行查找。实际上,这是一个更复杂的情况,即带有多个标头行的所谓“矩阵查找”或“双向查找”。

这是一行和列中有多个标准的通用索引匹配公式:

{= index( table_array ,match( vlookup_valuelookup_column ,0),match( hlookup_value1hlookup_value2lookup_row1 &lookup_row1& lookup_row2,0 )})}))})

在哪里:

table_array-在内部搜索的地图或区域,即所有数据值不包括列和行标头。

vlookup_value-您在列中垂直寻找的值。

Lookup_column-通常要搜索的列范围,通常是行标头。

hlookup_value1,hlookup_value2,… - 在行中水平寻找的值。

Lookup_row1,Lookup_row2,… - 行搜索范围,通常是列标题。

重要说明!为了使公式正确工作,必须将其作为带有Ctrl Shift Enter的数组公式输入。

它是经典的双向查找公式的变体,该公式在某个行和列的交点处搜索一个值。不同之处在于,您将几个Hlookup值和范围串联以评估多个列标题。为了更好地理解逻辑,请考虑以下示例。

带有多个标准的矩阵查找 - 公式示例

在下面的示例表中,我们将根据行标头(项目)和2列标题(区域和供应商)搜索一个值。为了使公式易于构建,让我们首先定义所有标准和范围:

  • table_array -b3:e4
  • vlookup_value (目标项目)-H1
  • Lookup_column (行标头:项目) - A3:A4
  • hlookup_value1 (目标区域)-H2
  • hlookup_value2 (目标供应商)-H3
  • Lookup_row1 (列标题1:区域)-B1:E1
  • Lookup_row2 (列标题2:供应商)-B2:E2

现在,将论点提供到上面解释的通用公式中,您将获得此结果:

=INDEX(B3:E5, MATCH(H1,A3:A5,0), MATCH(H2&H3,B1:E1&B2:E2,0))

请记住,通过按CTRL Shift输入快捷方式来完成该公式,并且您的矩阵查找具有多个标准:将成功完成:

Excel索引与多个标准匹配 - 公式示例

该公式如何工作

当我们垂直和水平搜索时,我们需要为索引(array,row_num,column_num)函数提供行和列号。

ROW_NUM通过Match(H1,A3:A5,0)提供,将H1中的目标项目(苹果)与A3:A5中的行标头进行比较。这给出了1的结果,因为“苹果”是指定范围中的第一项。

column_num是通过连接2个查找值和2个查找数组来制定的:匹配(H2&H3,B1:E1&B2:E2,0))

成功的关键因素是查找值应与列标题完全匹配,并以相同的顺序连接。要可视化这一点,请在匹配公式中选择前两个参数,请按F9 ,您将看到每个参数评估的内容:

MATCH("NorthVendor 2", {"NorthVendor 1", "NorthVendor 2", "SouthVendor 1", "SouthVendor 2"}, 0)

由于“ Northvendor 2”是阵列中的第二个元素,因此函数返回2。

在这一点上,我们冗长的二维索引匹配公式将其转换为这个简单的索引:

=INDEX(B3:E5, 1, 2)

并在b3:e5范围内的第一行和第二列的相交处返回一个值,该值是单元格C3中的值。

这就是如何查找Excel中的多个标准。我感谢您阅读,并希望下周在我们的博客上见到您!

练习工作簿下载

Excel索引匹配多个标准(.xlsx文件)

以上是Excel索引与多个标准匹配 - 公式示例的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
如何在Excel中创建时间轴以滤波枢轴表和图表如何在Excel中创建时间轴以滤波枢轴表和图表Mar 22, 2025 am 11:20 AM

本文将指导您完成为Excel Pivot表和图表创建时间表的过程,并演示如何使用它以动态和引人入胜的方式与数据进行交互。 您的数据在Pivo中组织了

如何在Excel中下拉如何在Excel中下拉Mar 12, 2025 am 11:53 AM

本文说明了如何使用数据验证(包括单个和因列表)在Excel中创建下拉列表。 它详细介绍了该过程,为常见方案提供解决方案,并讨论诸如数据输入限制和PE之类的限制

如何在Excel中概括一列如何在Excel中概括一列Mar 14, 2025 pm 02:42 PM

本文讨论了使用SUM函数,Autosum功能以及如何总和特定单元格中的Excel中总和列的方法。

如何在Excel中制作饼图如何在Excel中制作饼图Mar 14, 2025 pm 03:32 PM

本文详细介绍了在Excel中创建和自定义饼图的步骤,专注于数据准备,图表插入和个性化选项,以增强视觉分析。

如何在Excel中制作桌子如何在Excel中制作桌子Mar 14, 2025 pm 02:53 PM

文章讨论了Excel中的创建,格式化和自定义表,并使用诸如总和,平均和透视物等功能进行数据分析。

如何计算excel中的平均值如何计算excel中的平均值Mar 14, 2025 pm 03:33 PM

文章讨论使用平均功能在Excel中计算平均值。主要问题是如何有效地将此功能用于不同的数据集。(158个字符)

如何在Excel中添加下拉如何在Excel中添加下拉Mar 14, 2025 pm 02:51 PM

文章讨论了使用数据验证在Excel中创建,编辑和删除下拉列表。主要问题:如何有效管理下拉列表。

您需要知道的所有要对Google表中的所有数据进行排序您需要知道的所有要对Google表中的所有数据进行排序Mar 22, 2025 am 10:47 AM

掌握Google表格分类:综合指南 在Google表中对数据进行排序不需要复杂。本指南涵盖了各种技术,从整个床单到特定范围,按颜色,日期和多个列。 无论你是诺维

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
3 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
3 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
3 周前By尊渡假赌尊渡假赌尊渡假赌

热工具

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

将Eclipse与SAP NetWeaver应用服务器集成。

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )专业的PHP集成开发工具

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

螳螂BT

螳螂BT

Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。

VSCode Windows 64位 下载

VSCode Windows 64位 下载

微软推出的免费、功能强大的一款IDE编辑器