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))
真的,这只是一个文字游戏。