Lookup属于Excel查找类的函数,语法如下:
- 矢量形式:在单行或单列区域中查找目标值,返回第二个单行或单列区域中相同位置的数值。
Lookup(lookup_value,lookup_vector,result_vector)
Lookup(目标值, 查询区域, 结果区域)
- 数组形式:在数组的第一行或第一列查找目标值,返回数组的最后一行或最后一列中相同位置的数值
Lookup(lookup_value,array)
Lookup(目标值, 数组)
函数参数意义如下:
- lookup_value:要查找的目标值,包括文本、数字或逻辑值;
- lookup_vector:只包含一行或一列的单元格区域 ;
- result_vector:只包含一行或一列的单元格区域,大小与 lookup_vector 相同;
- array:单元格区域或数组。如果列比行多,查找第一行,返回最后一行相同位置的数值;如果行列数相等,或者行比列多,则查找第一列,返回最后一列相同位置的数值;
补充说明:
- Lookup查询方式:采取二分法查询;
- lookup_vector和array必须按升序排序,否则不能返回正确的结果;
- 如果找不到lookup_value,则查找其中小于lookup_value的最大数值;
- 如果lookup_value小于查找数据的第一个值,则返回错误值#N/A;
- 查找文本不区分大小写,不支持通配符(可使用Find函数来代替);
主要用途:
- 在大量数据中基于查找值反馈结果;
- 基于特殊查找值或判断条件返回结果,如:①查找一列数据中最后非空数值;②查找一列数据中符合一定判断条件的最后一个数值;
常规应用举例:
- 根据员工编号查找员工姓名:
- 根据员工编号查找年龄【方法一】:
- 利用lookup_vector/result_vector实现
- 根据员工编号查找年龄【方法二】:
- 利用数组array实现
高级应用举例:
- 把考核分数转换成考核等级:
- 从下向上逆向查询 - 无条件
[1] 查找列表中最后一位员工的姓名
说明:
- 利用Lookup二分查找原理,用最大数作为查找目标值,查找最后非空列数值;
- Code函数把汉字字符转变为代码比较;
- 65535是Excel中汉字代码的最大代码;
[2] 查找列表中最后一位员工的年龄
说明:
- 利用Lookup二分查找原理,用最大数作为查找目标值,查找最后非空列数值;
- 9.00E+307是Excel中的最大数值;
- 从下向上逆向查询 - 单条件
查找年龄小于40岁的最后一个人姓名
说明:
- 1/(F56:F62<40)返回1或者#DIV/0!错误,没有找到查找值2,返回最后一个1相应位置的姓名;
- 从下向上逆向查询 - 多条件
说明:
Lookup函数多条件查询方法:
Lookup(1,0/((条件区域1=条件1)*(条件区域2=条件2)),查询区域)
本文暂时没有评论,来添加一个吧(●'◡'●)