Excel表查找匹配两列的值

我想创build一个匹配两列的表查找公式。 例如,假设我想在“ Type Biennial且“ Result列为“ Warning的行中查找“ Letter列的值。

   ABC
 1个字母types结果
 2每年超过
 3 B两年一度的警告
 4 C双年展发展需要
 5 D双年展PartiallyMeets
 6 E年度会议

公式看起来是怎样实现的?

SUMPRODUCT()公式适用于要查找具有多个条件的值的情况。 当想查找数值时最为方便,但也可以调整查找string值。 作为奖励,你可以避免使用数组公式。

使用下面的公式可以解决这个特殊的问题(为易读性添加了缩进,您可以使用ALT + ENTER在Excel公式中执行该缩进):

 =INDEX( $A$2:$A$6, SUMPRODUCT( ($B$2:$B$6 = "Biennial") * ($C$2:$C$6 = "Warning") * ROW($A$2:$A$6) ) - 1 ) 

首先,使用SUMPRODUCT()来过滤使用($B$2:$B$6 = "Biennial")($C$2:$C$6 = "Warning") 。 乘法运算符*充当AND运算符( +运算符将用作OR运算符)。

然后结果乘以ROW($A$2:$A$6)find组合的特定行。 SUMPRODUCT()然后添加一切,在这种情况下,给我们3 。 由于查询的结果实际上是在第2行由于列标题,我们减1.通过应用INDEX()函数,我们得到所需的结果: B

当然, 只有当所寻求的组合是独特的时候,情况就是如此。 如果所寻求的组合不止一次存在,就会崩溃。

避免数组input的另一种方法是:

 =INDEX($A$2:$A$6,MATCH(2,index(1/(($B$2:$B$6="Biennial")*($C$2:$C$6="Warning")),0))) 

它利用匹配函数忽略某些错误的事实,并且该索引自然地pipe理数组。

如果你喜欢,你可以使用一个数组公式:

 =INDEX($A$2:$A$6,MATCH(1,($B$2:$B$6="Biennial")*($C$2:$C$6="Warning"),0)) 

用Ctrl + Shift + Enterinput

如果你想这样做没有数组公式,你可以做到这一点是通过创build一个帮手列。

D列有公式:

 =B2&C2 

复制下来

那么新的公式可能是:

 =INDEX($A$2:$A$6,MATCH("BiennialWarning",$D$2:$D$6,0)) 

真的,这只是一个文字游戏。