分享

问与答40:如何使用INDEX MATCH实现多条件查找?

 L罗乐 2018-07-17


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

1

未来简史 人类简史(新版套装2册)

作者:[以色列]尤瓦尔·赫拉利 著 / 林俊宏 译

当当 广告
购买

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


欢迎分享本文,转载请注明出处。

欢迎在下面留言,完善本文内容,让更多的人学到更完美的知识。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多