在Excel数据查询中,VLOOKUP只能从左往右查,遇到反向查询就不够用了。而LOOKUP函数可以实现任意方向的数据查询,无论查找值在左还是在右,都能灵活应对。它有一套固定的模式化写法,掌握之后,很多复杂的查询场景都能用同一个套路解决。
一、单条件查询
模式化写法:
=LOOKUP(1, 0/(区域=指定条件), 要返回内容的区域)
以准考证号查询为例,C列是姓名,A列是准考证号。需要根据G1单元格中的姓名,查询对应的准考证号,在目标单元格输入:
=LOOKUP(1,0/(C2:C8=G1),A2:A8)

公式拆解:
- C2:C8=G1:判断C列每个姓名是否等于H2,返回一组TRUE或FALSE
- 0/(…):用0除以这组逻辑值,TRUE变0,FALSE变错误值
- LOOKUP(1, …):用1查找,忽略错误值,返回最后一个0对应的位置
- A2:A8:从准考证号列中返回对应位置的内容
二、多条件查询
模式化写法:
=LOOKUP(1, 0/(区域1=条件1)/(区域2=条件2), 要返回内容的区域)
多个条件用 / 连接,表示“且”的关系。例如同时根据姓名和部门查询:
=LOOKUP(1, 0/(C2:C10=H2)/(D2:D10=I2), B2:B10)
只有两个条件同时满足的行才会保留,其余全部变成错误值,LOOKUP自动忽略错误值返回匹配结果。
三、LOOKUP的三个特点
特点一:要求查询区域升序排列,但如果用0除以条件的方式构造数组,这个限制就自动绕过了。
特点二:当查找不到精确值时,会以比查找值小且最接近的值进行匹配。这里用1查找,数组中只有0和错误值,所以必定匹配到0。
特点三:自动忽略数组中的错误值,这是它能处理条件查询的根本原因。
四、总结
LOOKUP函数单条件用一次除法,多条件用多次除法连接。无论查找值在左还是在右,无论是一个条件还是多个条件,都能用同一个套路完成查询。比起INDEX+MATCH组合,这个写法更加简短,适合在需要灵活查询时使用。