我有一个excel工作簿,其中包含多个具有相同客户端ID的实例。因此,客户端可以在列表中出现多次。我想找到客户端ID的最后一个(最接近底部)实例,这样我就可以查看同一行以获取更多信息。 VLOOKUP显示了第一个实例,我需要最后一个实例。
那么,如何使用内置函数找到给定客户端ID的最后一个实例?我宁愿不写宏来做这件事。
答案 0 :(得分:20)
假设您要在范围"id_1"
中找到身份A2:A8
的最后一个实例,并从范围B2:B8
返回相应的值,然后使用:
=LOOKUP(2,1/(A2:A8="id_1"),B2:B8)
如果您想要返回范围"id_1"
中内容A2:A8
的最后一个内容的 index ,请使用:
=MATCH(2,1/(A2:A8="id_1"))
带数组条目( CTRL + SHIFT + ENTER )。
如果您想要返回身份"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
。