LOOKUP公式中1和0的含义,我用1500字给大家讲明白了
一、LOOKUP函数用法。
LOOKUP函数有2种语法形式:向量法和数组法。今天讲的是向量法。
向量语法形式:LOOKUP(lookup_value,lookup_vector,[result_vector])。
各参数含义:
lookup_value:要查找的值。可以为数字、文本、逻辑值或包含数值的名称或引用。
lookup_vector:只包含一行或一列的区域。可以为文本、数值或逻辑值。若为数值,必须升序排序,否则,不能返回正确的结果。若为文本,则不区分大小写。
result_vector:只包含一行或一列的区域。区域大小必须跟lookup_vector一致。
二、LOOKUP函数模糊查找实例运用。
模糊查找要求LOOKUP函数第2个参数必须按生序排序,否则不能返回正确的结果。下图中
表1已经对编号做了升序排序处理,表2没有排序。
要求:分别在2个表中查找编号对应的订单号。
步骤:在下图中的C15单元格中输入公式“=LOOKUP(B15,$B$3:$B$12,$C$3:$C$12)”,按回车键,然后下拉公式至C17单元格。
在下图中的F15单元格中输入公式“=LOOKUP(E15,$E$3:$E$12,$F$3:$F$12)”,按回车键,然后下拉公式至F17单元格。
对比上面2张图片,我们发现F15、F162个单元格的查找结果是不正确的,这是为什么呢?这是因为我们一开始所说的lookup_vector必须升序,否则就会出现上图所看到的结果。
那么,很多情况下我们并不能对数据做升序排序,在lookup_vector没有排序的情况下,我们怎样才能查找到正确的结果呢?下面就是我要跟大家讲解的重点,采用LOOKUP函数经典语法来解决,该语法如下:
LOOKUP(1,0/(条件),查找区域或数组)
如果条件有多个,语法如下所示:
LOOKUP(1,0/((条件1)*(条件2)*(条件3)*...*(条件N)),查找区域或数组)
语法中的1和0分别表示什么?首先,0/(条件)中的“条件”是一组逻辑值或由逻辑值运算得到的由TRUE和FALSE组成的数组,因此:0/(条件)相当于构建一个由0和错误值#DIV/0组成的数组。如果条件为真,返回TRUE,条件为假,返回FALSE,0/(条件)相当于0/TRUE=0,0/FALSE=#DIV/0。整个公式的意思是:要在一个由0和错误值#DIV/0组成的数组中查找1,很明显找不到,那就返回最接近于1的值,也就是0,用大于0的数值来查找0,肯定可以查找最后一个满足条件的。
所以不管有没有排序,利用LOOKUP函数的经典语法,下图中C15单元格的公式可改成“=LOOKUP(1,0/(B15=$B$3:$B$12),$C$3:$C$12)”。
F15单元格的公式可改成“=LOOKUP(1,0/(E15=$E$3:$E$12),$F$3:$F$12)”。
这样子不管数据源有没有排序,用了上面的语法,结果都是正确的。这就是这期教程跟大家讲解的重点,记住模板语法“LOOKUP(1,0/((条件1)*(条件2)*(条件3)*...*(条件N)),查找区域或数组)”,理解语法中1和0的含义,以后就可直接套用这条公式,学起来吧!
关注我,每天都可以让您学到一个实用的办公技巧!
觉得文章对您有帮助,可以任意赞赏,转发,点赞,有问题可在评论区直接留言!