分享一个 “查找匹配” 问题的3种Excel “函数” 解法!
分享Excel文章的朋友,还是挺少。但是这个领域不能少吧,一定要给大家分享这3种函数;
问题来源
昨天闲来无事,在群里面看到这样一个题目。
需求: 根据每种商品,在右侧的表中找到它所匹配的商品 “大类”。
拿到这个题目,我就想到了三种方法来解决这个问题。
- vlookup()函数
- lookup()函数
- index() + match()函数
这几个函数可以算作是匹配查找的 “三巨头”,用起来效果绝对杠杠的。
哈哈,闲来无事,自己简单操刀了一下,原来宝刀未老。
解决办法
如果说,你拿到这道题,一个函数都不会的话,那我不知道说啥了。至少你得会最基本的vlookup(),不然一个小小的Excel面试题,你都不会做。
不会的同学,就跟着我的思路来玩儿这3种解法吧!
① vlookup()函数
对于vlookup()函数,我们主要学以下三点:
- 场景:按照数据的首列,查找指定区域中,指定位置的对应结果
- 语法: =VLOOKUP(查找对象,目标区域,目标区域所在列,精确-0或模糊-1)
- tips:查找对象,必须位于目标区域的第一列
接下来看看该函数,怎么解决这个问题。
解析: 观察这个函数,我们是从第一行下拉查到最后一行的。我们以第一行为例,进行讲解。对于第一行C2单元格种的 “可乐”,我们去右侧这个区域 $K
L$5 查找对应的大类值,由于我们就是在这个固定区域查找数值,所以采用了绝对引用。同时,可以看到我们要的目标值都在查找区域的第二列。
② lookup()函数
对于lookup()函数,我们主要学以下三点:
- 场景:也是在指定区域,查找指定值
- 语法1:=LOOKUP(查找对象,查找对象所在列,目标值所在列)
- tips1:查找对象所在列必须升序排列
- 语法2: =LOOKUP(1,0/((条件1)*(条件2)···),目标值所在列)
- tips2:条件的格式为:查找值=查找值所在的区域
这里介绍了两种语法,但是对于第一种语法,这个要求是挺苛刻的,现实生活中,怎么可能每次保证【查找对象所在列,是升序的呢】?
因此,我们直接使用第二种办法,这里记住一句话:首先它会默认你的查找区域是升序排列,当查找值在查找区域中找不到目标值的时候,就会返回该区域中的“最大值”,这就是下面要讲述方法的 “解题关键”。
接下来看看该函数,怎么解决这个问题。
解析: 记住这是固定写法就好,我们要查找1,在 0/(C2=$K
K$5) 区域里面查找,通过计算可以知道,只有等于的那一行为 True 也就是1,0/1 也就等于0,然后你观察这一列可以发现,其他都是错误值,只有为True的行,返回的是0,那么除去错误值,0也就是最大的了。接着,我们查找的目标值,就是其他列的对应行了。
③ index() + match()函数
对于index()函数,我们主要学以下两点:
- 场景:在指定的区域,返回特定行列交叉的值
- 语法1: =INDEX(区域,行号,[列号])
对于match()函数,我们主要学以下两点点:
- 场景:返回特定值,在特定数组当作的位置
- 语法1: =MATCH(查找值,查找值所在区域,[参数])
接下来看看该函数,怎么解决这个问题。
解析: 首先看 第一个 match() 函数,我们返回了“可乐”这个值,在查找区域属于第几行。再看 第二个match() 函数,我们返回了 I1 在查找区域标题行属于第几列。知道了行、列,在 外层套一个index() 函数,制定了查找区域 $K
L$5 ,也指定了行列具体位置,就可以得到最终的值。
当然,不管你会不会用,我还是 建议 每天日常工作中都会使用Excel的朋友,都能够自己下去学习这3个函数。
- 点赞
- 收藏
- 关注作者
评论(0)