Excel里遇到“根据姓名找编号”“根据编号找姓名”这类查询时,如果返回列位于查找列左侧,VLOOKUP就无法直接完成。此时可以利用LOOKUP函数配合条件判断,实现灵活的反向查询。

一、用LOOKUP实现反向查询

假设A列为准考证号,C列为姓名,现在根据G1中的姓名返回对应准考证号,可以使用:

=LOOKUP(1,0/(C2:C8=G1),A2:A8)

这里的关键并不是LOOKUP直接查找姓名,而是先通过条件判断生成一个由0和错误值组成的数组,再让LOOKUP定位符合条件的数据。

其中,C2:C8=G1负责判断姓名是否匹配;0/(C2:C8=G1)会将符合条件的结果转换为0,不符合的变成错误值;最后由A2:A8返回对应位置的准考证号。

Excel如何用LOOKUP函数实现反向查询?详细教程-趣帮office教程网
用LOOKUP实现反向查询

二、多个条件同时查询

如果查询时需要同时满足姓名和部门等条件,可以继续增加判断条件:

=LOOKUP(1,0/(C2:C10=H2)/(D2:D10=I2),B2:B10)

多个条件之间用/连接,只有两个条件都成立的记录才能得到有效结果,因此可以用于员工信息、成绩表等多条件查询场景。

三、为什么这种写法有效?

LOOKUP本身具有忽略错误值的特点。公式利用除法制造错误值后,再查找1,数组中的有效结果通常为0,因此LOOKUP会定位最后一个符合条件的位置,并从返回区域提取数据。

这种写法还能突破LOOKUP常规查询方向的限制,实现左查右、右查左等反向查询。

四、使用时注意

如果存在多个符合条件的记录,LOOKUP通常返回最后一个匹配结果。因此使用前要确认数据是否存在重复情况。掌握LOOKUP+条件判断的写法后,很多单条件和多条件查询都可以套用同一思路完成。