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返回对应位置的准考证号。

二、多个条件同时查询
如果查询时需要同时满足姓名和部门等条件,可以继续增加判断条件:
=LOOKUP(1,0/(C2:C10=H2)/(D2:D10=I2),B2:B10)
多个条件之间用/连接,只有两个条件都成立的记录才能得到有效结果,因此可以用于员工信息、成绩表等多条件查询场景。
三、为什么这种写法有效?
LOOKUP本身具有忽略错误值的特点。公式利用除法制造错误值后,再查找1,数组中的有效结果通常为0,因此LOOKUP会定位最后一个符合条件的位置,并从返回区域提取数据。
这种写法还能突破LOOKUP常规查询方向的限制,实现左查右、右查左等反向查询。
四、使用时注意
如果存在多个符合条件的记录,LOOKUP通常返回最后一个匹配结果。因此使用前要确认数据是否存在重复情况。掌握LOOKUP+条件判断的写法后,很多单条件和多条件查询都可以套用同一思路完成。
评论 (0)