2016-08-17 154 views
0

在下面的示例中,A列包含键和 B列包含值。excel:查找关键字的范围,查找多个匹配项,返回最后一个匹配项

我想搜索关键字 “aaa”,并返回最后一个匹配的值:“aug”。

在这种情况下,有3个“aaa”键的实例,但 可能只是1个实例,或许多(未知)数的“aaa”键。我总是对最后一场比赛感兴趣。

无法添加额外的列。这些列未被排序。

vlookup()返回第一个匹配(“jan”),我无法使其与其他函数一起使用以返回最后一个匹配。

感谢。

  A  B  C ... 

     +-----+-----+ 
    1  | aaa | jan | 
     +-----+-----+ 
    2  | b | feb | 
     +-----+-----+ 
    3  | c | mar | 
     +-----+-----+ 
    4  | aaa | apr | 
     +-----+-----+ 
    5  | d | jun | 
     +-----+-----+ 
    6  | e | jul | 
     +-----+-----+ 
    7  | aaa | aug | 
     +-----+-----+ 
    8  | f | sep | 
     +-----+-----+ 
    9  | g | oct | 
     +-----+-----+ 

回答

0

请写出下面的数组公式。

=index(B1:B9, max(if(a1:a9="aaa", row(a1:a9))))

然后按CTRL ++进入

+0

如果什么范围并不在行1开始?例如,如果我们将范围A1:A9和B1:B9更改为例如,您的公式给出了什么? E6:E14和F6:F14? –

+0

@XORLX,在你的情况下需要'indirect()'。数组公式如下:=(F6:F14,max(if(E6:E14 =“aaa”,row(indirect(“1:”&rows(E6:E14))))))'。事实上,你的回答给了我一个新的教训。谢谢。 – PaichengWu

+0

实际上使用易失性INDIRECT是没有必要的。您需要考虑如何推广您的解决方案,以便将正确的参数传递给INDEX作为row_num, –

2

=LOOKUP(1,0/(A1:A9="aaa"),B1:B9)

问候

相关问题