在Excel中使用内置函数在列中find最后一个匹配项

我有一个Excel工作簿与同一客户端ID的多个实例。 所以,一个客户可以在列表中多次出现。 我想查找客户端ID的最后一个(最接近底部)实例,以便我可以沿同一行查看更多信息。 VLOOKUP显示了第一个例子,我需要最后一个。

那么,如何使用内置函数find给定客户端ID的最后一个实例呢? 我宁愿不写一个macros来做到这一点。

假设您想在范围A2:A8findid "id_1"最后一个实例,并从范围B2:B8返回对应的值,则使用:

 =LOOKUP(2,1/(A2:A8="id_1"),B2:B8) 

在这里输入图像说明


如果你想在范围A2:A8返回id "id_1"的最后一个实例的索引 ,使用:

 =MATCH(2,1/(A2:A8="id_1")) 

与数组项( CTRL + SHIFT + ENTER )。

如果你想返回id "id_1"的最后一个"id_1" 行号 ,使用:

 =LOOKUP(2,1/(A2:A8="id_1"),ROW(A2:A8)) 

这个语法是一个特殊的技巧: (A2:A8="id_1")计算结果为{TRUE,FALSE,FALSE,TRUE,...} 。 接下来,假设TRUE=1FALSE=0 ,则部分1/{TRUE,FALSE,FALSE,TRUE,...}给出{1,#DIV0!,#DIV0!,1,..}

要返回结果数组中的最后一个数字, lookup_value应该大于lookup_array( {1,#DIV0!,#DIV0!,1,..}中的任何值)。 由于数组只包含1#DIV0! ,我们可以取2作为lookup_value ,因为它总是大于1