搜索
首页专题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中的中位公式 - 实际示例Apr 11, 2025 pm 12:08 PM

本教程解释了如何使用中位功能计算Excel中数值数据中位数。 中位数是中心趋势的关键度量

Google电子表格Countif函数带有公式示例Google电子表格Countif函数带有公式示例Apr 11, 2025 pm 12:03 PM

Google主张Countif:综合指南 本指南探讨了Google表中的多功能Countif函数,展示了其超出简单单元格计数的应用程序。 我们将介绍从精确和部分比赛到Han的各种情况

Excel共享工作簿:如何为多个用户共享Excel文件Excel共享工作簿:如何为多个用户共享Excel文件Apr 11, 2025 am 11:58 AM

本教程提供了共享Excel工作簿,涵盖各种方法,访问控制和冲突解决方案的综合指南。 现代Excel版本(2010年,2013年,2016年及以后)简化了协作编辑,消除了M的需求

如何将Excel转换为JPG-保存.xls或.xlsx作为图像文件如何将Excel转换为JPG-保存.xls或.xlsx作为图像文件Apr 11, 2025 am 11:31 AM

本教程探讨了将.xls文件转换为.jpg映像的各种方法,包括内置的Windows工具和免费的在线转换器。 需要创建演示文稿,安全共享电子表格数据或设计文档吗?转换哟

excel名称和命名范围:如何定义和使用公式excel名称和命名范围:如何定义和使用公式Apr 11, 2025 am 11:13 AM

本教程阐明了Excel名称的功能,并演示了如何定义单元格,范围,常数或公式的名称。 它还涵盖编辑,过滤和删除定义的名称。 Excel名称虽然非常有用,但通常是泛滥的

标准偏差Excel:功能和公式示例标准偏差Excel:功能和公式示例Apr 11, 2025 am 11:01 AM

本教程阐明了平均值的标准偏差和标准误差之间的区别,指导您掌握标准偏差计算的最佳Excel函数。 在描述性统计中,平均值和标准偏差为interinsi

Excel中的平方根:SQRT功能和其他方式Excel中的平方根:SQRT功能和其他方式Apr 11, 2025 am 10:34 AM

该Excel教程演示了如何计算正方根和n根。 找到平方根是常见的数学操作,Excel提供了几种方法。 计算Excel中正方根的方法: 使用SQRT函数:

Google表基础知识:了解如何使用Google电子表格Google表基础知识:了解如何使用Google电子表格Apr 11, 2025 am 10:23 AM

解锁Google表的力量:初学者指南 本教程介绍了Google Sheets的基础,这是MS Excel的强大而多才多艺的替代品。 了解如何轻松管理电子表格,利用关键功能并协作

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脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版

VSCode Windows 64位 下载

VSCode Windows 64位 下载

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

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

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

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

mPDF

mPDF

mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),