上两期,我跟大家分享了分别用VLOOUP+IF函数组合和VLOOKUP+CHOOSE函数组合来实现反向查找,这期,我将跟大家分享用LOOKUP函数来实现反向查找!
Excel反向查找二 | 如何用VLOOKUP+CHOOSE函数组合来实现反向查找
下图中,B2:F11单元格区域是一个商品表,我们需要通过H列的商品名称找到对应的类别!
具体操作步骤如下:
1、选中I3单元格,在编辑栏中输入公式:=LOOKUP(1,0/(H3=$C$3:$C$11),$B$3:$B$11),按回车键回车。
2、公式解析。
(H3=$C$3:$C$11):
该公式会得到一个由TRUE和FALSE组成的数组:{FALSE;FALSE;FALSE;FALSE;TRUE;FALSE;FALSE;FALSE;FALSE},其中数组中的TRUE表示$C$3:$C$11这个单元格区域中有与H3单元格值相等的单元格,所以返回TRUE。
0/(H3=$C$3:$C$11):
用0除以由TRUE和FALSE组成的数组,相当于构建一个由0和错误值#DIV/0!组成的数组,该公式返回的结果是:{#DIV/0!;#DIV/0!;#DIV/0!;#DIV/0!;0;#DIV/0!;#DIV/0!;#DIV/0!;#DIV/0!}。
=LOOKUP(1,0/(H3=$C$3:$C$11),$B$3:$B$11):
LOOKUP公式的含义是:从单行或单列或数组中查找一个值。
该函数有两种查找方式:向量型查找和数组型查找。在一行或一列中查找某个值,称为向量型查找;在数行或数列中查找称为数组型查找。
向量型查找语法:=LOOKUP(lookup_value,lookup_vector,[result_vector])/=LOOKUP(要查找的值,要查找的范围,返回值的范围)。
数组型查找语法:=LOOKUP(lookup_value,array)/=LOOKUP(要查找的值,数组区域)。
语法中的1和0分别表示什么?首先,0/(H3=$C$3:$C$11)中的“H3=$C$3:$C$11”是一组逻辑值或由逻辑值运算得到的由TRUE和FALSE组成的数组,因此:0/(H3=$C$3:$C$11)相当于构建一个由0和错误值#DIV/0组成的数组。如果条件为真,返回TRUE,条件为假,返回FALSE,0/(条件)相当于0/TRUE=0,0/FALSE=#DIV/0!。整个公式的意思是:要在一个由0和错误值#DIV/0组成的数组中查找1,很明显找不到,那就返回最接近于1的值,也就是0,用大于0的数值来查找0,肯定可以查找最后一个满足条件的。这也是LOOKUP函数中最经典的用法——二分法。
技巧:如果你理解了语法中1和0的含义,在以后的工作中,你就可以直接套用模板语法:=LOOKUP(1,0/((条件1)*(条件2)*(条件3)*...*(条件N)),查找区域或数组)。
3、动图演示如下。
今天就跟大家分享到这里,如果你想要学习更多的办公技巧,可以持续关注我的头条号哦~