文档介绍:...wd...
...wd...
LOOKUP(1,0/(条件),查找数组或区域)。
公式中的2、1、0等数字的含义是什么? 首先,条件是一组逻辑判断的值或逻辑运算得到的由TRUE和FALSE组成或者0与非0组成的数组,因而:0/(条件)的作用是用于构建一个由0或者#DIV!0错误组成的值。比方数据源中能查找到对应值就是ture,没有就是false。形式如:0/True=0,0/false=#DIV0!,查找到就0,没有就是错误值。
如果 LOOKUP 函数找不到 lookup_value (即:1),那么它与 lookup_vector 中小于或等于 lookup_value 的最大值(即:0)匹配。
也就是说,要在一个由0和#DIV!0组成的数组中查找1,肯定找不到1,因而将返回小于或等于1的最大值(也就是0)匹配。用大于0的数来查找0,肯定能查到最后一个满足条件的。
以上的原理,被俗称为“以大欺小法〞。这种技巧在LOOKUP函数上的运用是很常见的。
利用上面的原理,不管有没有排序,只要使用上面的“以大欺小法〞都能得到正确结果。比方上面实例中,在J25单元格输入公式:=LOOKUP(1,0/(I25=$I$5:$I$17),$J$5:$J$17),就可以了。
...wd...
...wd...
...wd...
运用二:准确查找
第一,查找的数据没有对应值,可以利用ISNA(ISERROR)函数屏蔽错误值。
如上图所示,表3是数据源,在下面左边根据“番号〞查找“俗称〞。单击C51单元格,输入公式=LOOKUP(1,0/(B51=$B$42:$B$45),$C$42:$C$45),然后下拉可以看到下面的C52和C54单元格出现错误值。这种情况可以利用ISNA(ISERROR)函数屏蔽错误值。
只要在公式外面嵌套个if(isna(lookup(),"",lookup()),这样的形式就可以把错误值屏蔽。在H51单元格,输入这样的公式:=IF(ISNA(LOOKUP(1,0/(G51=$B$42:$B$45),$C$42:$C$45)),"",LOOKUP(1,0/(G51=$B$42:$B$45),$C$42:$C$45)),下拉,就可以屏蔽错误值了。将错误值屏蔽了,表格就好看多了。
上面公式中,"",是显示空的意思,错误就显示空,没有就查找。
第二,借助错误值来判定产品是否存在。
下列图所示根据左边的数据源,来判定右边对应的数据是否在番号列中。
只需要嵌套一个isna函数就可以做到,如果没有存在就错误,有存在就......这样的形式。在H62单元格输入公式:=I