在Excel中使用内置函数在列中find最后一个匹配项
我有一个Excel工作簿与同一客户端ID的多个实例。 所以,一个客户可以在列表中多次出现。 我想查找客户端ID的最后一个(最接近底部)实例,以便我可以沿同一行查看更多信息。 VLOOKUP显示了第一个例子,我需要最后一个。
那么,如何使用内置函数find给定客户端ID的最后一个实例呢? 我宁愿不写一个macros来做到这一点。
假设您想在范围A2:A8
findid "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=1
且FALSE=0
,则部分1/{TRUE,FALSE,FALSE,TRUE,...}
给出{1,#DIV0!,#DIV0!,1,..}
。
要返回结果数组中的最后一个数字, lookup_value
应该大于lookup_array( {1,#DIV0!,#DIV0!,1,..}
中的任何值)。 由于数组只包含1
或#DIV0!
,我们可以取2
作为lookup_value
,因为它总是大于1
。