=LOOKUP(1,1/(条件1)*(条件2)*(条件3)……,返回区域)
LOOKUP是查找函数,其作用是在指定的范围内查找某个数值或文本,并返回其在范围中的位置。
=LOOKUP(lookup_value,lookup_vector,[result_vector])
lookup_value表示要查找的数值或文本;
lookup_vector表示要进行查找的范围;
result_vector是一个可选参数,表示要返回的数值或文本所在的范围。
LOOKUP不能被广泛使用,与其苛刻的应用条件有关:
第二参数lookup_vector中的数值或文本必须按照升序或降序排列。如果没有排序,LOOKUP函数可能返回错误的结果。
例如,在A列查找4.5,并返回对应的字母:
=LOOKUP(4.5,A2:A6,B2:B6)
A列的数字由小到大排列
LOOKUP
同样的公式,因为A列没有排序,LOOKUP返回了错误的结果:
=LOOKUP(4.5,A2:A6,B2:B6)
LOOKUP错误示范
这一条件不但被广大用户诟病,就连微软官方的介绍中也是一脸嫌弃,推荐大家用VLOOKUP或XLOOKUP代替。
微软官网截图
尽管如此,开头提到的模板公式值得学习。毕竟还有大量用户没有用上XLOOKUP,而VLOOKUP两大缺点用LOOKUP可以轻松解决:反向查询和多条件查询。
同样以查询4.5对应的字母为例:
=LOOKUP(1,1/(B2:B6=4.5),A2:A6)
LOOKUP单条件查找
过去的Excel没有自动溢出,很多计算过程全靠用户脑补。在高版本中把公式拆解就很容易理解了。
(B2:B6=4.5)是整个公式的内核,判断B2:B各单元格是否等于4.5,它将返回一个由TRUE和FALSE组成的数组。
1/(B2:B6=4.5)则是简单的数学运算,用1来除以这个数组。
把TRUE看作1,FALSE看作0;
1除以1等于1,1除以0则返回错误值#DIV/0!,因为0不能作为除数。
最终得到如图所示的数组。
最后用LOOKUP在这个数组中查找1,并返回对应的值。
值得注意的是,用VLOOKUP无法实现案例中的反向查找。
这就是单条件查询的模板公式:
=LOOKUP(1,1/条件,返回区域)
如果是多条件查询,只需把多个条件并列相乘即可。
例如要查询4.5,香蕉两个条件对应的字母:
=LOOKUP(1,1/(A2:A6=4.5)*(B2:B6='香蕉'),C2:C6)
LOOKUP多条件查询
公式的逻辑与单条件公式雷同,1/(A2:A6=4.5)*(B2:B6='香蕉')也会返回一个由1和错误值组成的数组。
多条件查询模板公式:
=LOOKUP(1,1/(条件1)*(条件2)*(条件3)……,返回区域)
当然,LOOKUP也有其他的应用场景,但在没有全面掌握函数要领的情况下,建议尽量少用。上述模板公式流传已久,经过了严格的市场检验,新手也可以直接套用。
联系客服