点击蓝字【秋叶 Excel】
发送【礼包】
免费领办公神器、Office 模板和免商字体!
本文作者:赵骄阳&小爽
本文编辑:竺兰
大家好,之前我们介绍过 Lookup 函数的基本用法。(文章见文末!)
=LOOKUP(lookup_value,lookup_vector,[result_vector])=LOOKUP(查找值,查找区域,[返回区域)
提到过:使用 Lookup 函数时,必须先对第二参数「查找区域」进行升序处理。
这时就有小伙伴纳闷了:写函数公式,还要时刻注意给原来的数据排序,这也太麻烦了!
别急!不想排序的话,Lookup 也有办法。
请往下看!
单条件查询
如下图,根据姓名查询年龄:
看起来好复杂啊!
不怕,以 G5 单元格中的公式为例,我们先来看看公式解析~
=LOOKUP(1,0/(F3=B3:B12),D3:D12)
❶ F3=B3:B12 先判断 B3:B12 (姓名列)是否等于 F3("杨山")。
如果是,则返回 True,否则返回 False。这时形成由 True 和 False 组成的数组。
❷ 0/({FALSE;FALSE......}),用 0 除以判断结果形成的数组。
0/TRUE=0,0/FALSE=#DIV/0!(在四则运算中,True 相当于 1,False 相当于 0),形成由 0 和#DIV/0!组成的数组。
如下图所示:
❸ Lookup 函数先在「查找区域」中查找与 1 匹配的值。
如果找不到,则继续找小于且最接近查找值的数值。
在「查找区域」中 0 最接近 1,所以结果返回 0 对应的 D3:D12 中的数据(85)。
PS:Lookup 函数是根据二分法进行跳跃式查找的,它会忽略#DIV/0!错误值,所以查找区域中仅存在数值 0,且 0 也是小于等于 1 的数值。
简言之,这个公式的关键在于第 2 参数:
0/(F3=B3:B12)生成一个由数值 0 和错误值#DIV/0! 组成的数组。
再从这个数组中找到小于或等于 1 的最大值 0,最后返回第 3 参数:D3:D12 对应的值。
敲黑板:
当我们碰到单条件查找的问题时,可以按照下面的公式直接套用!
=LOOKUP(1,0/(条件=条件区域),返回区域)
看案例!
如下图,我们需要根据姓名查询性别:
以 F3 作为条件,B3:B12 为条件区域,C3:C12 为返回区域,套用:
=LOOKUP(1,0/(条件=条件区域),返回区域)
得到 G3 单元格公式:
=LOOKUP(1,0/(F3=B3:B12),C3:C12)
既然有单条件查询的套路公式,那自然有 Lookup 函数多条件查询的套路公式。
继续往下看!
多条件查询
Lookup 函数多条件查询的套路公式:
=LOOKUP(1,0/((条件 1=条件区域 1)*(条件 2=条件区域 2)*…*(条件 n=条件区域 n)),返回区域)
看案例!
如下图,根据采购日期和货品名称,查找对应的单价。
条件 1:F3 也就是采购日期 条件区域 1:B3:B8 条件 2:G3 也就是货品名称 条件区域 2:C3:C8 返回区域:D3:D8
在 H3 单元格中,直接套用公式:
=LOOKUP(1,0/((F3>=B$3:B$8)*(G3=C$3:C$8)),D$3:D$8)
前面讲的都是文本的精确匹配,那如果是文本的模糊匹配,我们应该怎么做呢?
这个还有没有套路公式哇?
这时候我们还需要借助一个FIND 函数~
欲知详情,往下看!
模糊查询
Lookup 函数模糊查询的套路公式:
=LOOKUP(1,0/FIND(查找区域,查找值),返回区域)
看案例!根据类别(简称)查商品名称(全称)。
查找区域:E3:E10,也就是类别列 查找值:B3 返回区域:E3:E10
在 C3 单元格中,直接套用公式:
=LOOKUP(1,0/FIND(E$3:E$10,B3),E$3:$E10)
简单解释一下,这个函数公式运算的原理~
Find 函数基本语法:
Find 是用来返回一个字符串在另一个字符串中出现的起始位置(区分大小写)。
=FIND(find_text,within_text,[start_num])=FIND(查找值,在哪里找,从第几个字符开始查找)
以 C3 单元格公式为例:
=LOOKUP(1,0/FIND(E$3:E$10,B3),E$3:$E10)
如下图所示:
❶ 利用 Find 函数查找「简称在全称的位置情况」,如果找得到,数组对应就是位置的起始位置;如果找不到,则对应返回#VALUE 错误值。
查找值:类别列 在哪找:男童舒适适气棒球便服黑色男童便服
❷ 0/({#VALUE;#VALUE......}),用 0 除以 find 函数查找的结果形成的数组,0/错误值=错误值,0/数值=0,最后形成由 0 和#VALUE 组成的数组。
❸ 由于 Lookup 函数可以忽略错误值,所以,Lookup 函数先在查找区域中查找小于等于 1 的最大值,也就是 0,最后返回 0 的对应区域,也就是「便服」。
看到这里,大家是不是对 Lookup 函数的特殊用法:Lookup(1,0/(条件区域))有了进一步的认识呢?
总结一下
❶ Lookup 函数第 2 参数可以通过构造 0/(条件)的形式,实现在乱序中进行查找。
❷ Lookup 函数三种经典用法:
① 单条件查询经典用法:
=LOOKUP(1,0/(条件=条件区域),返回区域)
② 多条件查询经典用法:
=LOOKUP(1,0/((条件 1=条件区域 1)*(条件 2=条件区域 2)*…*(条件 n=条件区域 n)),返回区域)
③ 模糊查询经典用法:
=LOOKUP(1,0/FIND(查找区域,查找值),返回区域)
以上 Lookup 乱序查找的 3 种经典用法,你们看懂了吗?
看不懂没关系,这些操作,在《秋叶 Excel 3 天集训营》课程里,都会变得超!简!单!
小编今天为你们申请了公号读者专属优惠!助力你们学习 Excel 技能,水平蹭蹭上涨,工作更高效!
原价99元的《秋叶 Excel 3 天集训营》,现在报名,只需 0 元!
秋叶 Excel 3 天集训营
0 基础也能学
报名额外赠送
100 套职场必备图表模板
35 个常用函数说明
学到就是赚到
名额有限,快来免费加入
如果想学习更多 Lookup 知识,欢迎点击下方链接查看↓↓↓
以上内容包含广告
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.