首页 > Excel专区 > Excel教程 >

如何使用INDEX+MATCH实现多条件查找?

Excel教程 2022-01-02 14:04:37

Q如图1所示,列A和列B中的数据都有重复,现在我们要使用INDEX+MATCH函数组合来查找西区空调的数量。可以使用MATCH函数获得查找值所在的行,将其作为INDEX函数的参数来获取数据。然而,由于MATCH函数将只会返回第一个匹配的数据所在的位置,也就是说公式:=MATCH(“空调”,A:A,0),返回数值5,而我们想要的是数值7,显然与我们的要求不符,结果当然也不正确。那么,如何实现呢?

图1

A:下面使用INDEX+MATCH函数组合编写的数组公式来实现目的。

如图2所示,在单元格区域E2:F3中列出查找条件。在单元格F2中是要查找的物品,单元格F3中是物品所在的仓库。

图2

从查找数据的表中,我们发现物品和仓库组成的数据没有重复值,因此可以将它们组合成查找表,这样查找值也是唯一的。数组公式:

=MATCH(F2&F3,A2:A11&B2:B11,0)

获得西区空调在查找表中的位置,返回值6。然后,将结果作为INDEX函数的参数,获取数量值。数组公式为:

=INDEX(A2:C11,MATCH(F2&F3,A2:A11&B2:B11,0),3)

结果如图3所示。

图3

还可以在公式中使用逻辑判断来实现。下面的数组公式:

=MATCH(1,(A2:A11=F2)*(B2:B11=F3),0)

查找单元格区域A2:B11中满足列A中的值为单元格F2中的数据并且列B中的值为单元格F3中的数据所在行的位置,本例中为列A中为“空调”且列B中为“西区”的行在单元格区域A2:B11中的位置,返回6,即位于单元格区域的第6行。

然后,将结果作为INDEX函数的参数,数组公式:

=INDEX(A2:C11,MATCH(1,(A2:A11=F2)*(B2:B11=F3),0),3)

获取西区空调的数量为600。


标签: Excel常用函数excel常见问题excel技巧excel教程

office教程网 Copyright © 2016-2020 https://www.office9.cn. Some Rights Reserved.