我有3个案例,帮你全面掌握Excel查找函数
Excel中函数众多,查找算是其中的一个重要内容,那么今天就来了解一下Excel里面的常用查找函数相关内容。
实际的工作中遇到的每一个问题都由是什么?为什么?怎么做?这样三个核心内容所构成,我们能够正确分析出每一个问题的核心构成,就能对症下药,找出适合的解决方案。这才是Excel学习的难点所在。
万丈高楼平地起,今天我们就先来看看查询所用的相关函数。
VLOOKUP 函数查询
我们知道日常生活中查询的逻辑顺序如下:
> 根据已知信息去仓库中查询所需信息。
那么Excel中的查询所依据的就是这个逻辑原则,只要你平常有过信息查询的经验,就会比较好理解,那么我们所需要做的就是将我们日常的操作过程按照Excel的规范翻译成相应函数代码就行了。
具体怎么做呢?
下面我们来看几个案例,相信会有很大的帮助。
单维度查询
![](https://img.haomeiwen.com/i2664344/9b1ee339ffdec003.jpg)
已知工号,需要进行查询对应的月薪。
=VLOOKUP(B9,B2:D5,3,0)
先别想着直接写出函数,想想要是没有函数我们会怎么做?
- 提供了工号,那我们就去数据源找到对应工号的列,发现是B列;
- 在B列寻找,找到对应工号——ty003;
- 将我们的视线往后移动一列,发现是性别列,不是我们需要的列,再往后移动,知道找到目标列;
- 根据已知列的值,精确找到目标数值。
我们要做的就是翻译以上步骤:
中文翻译:查(已知条件:B9,数据区域:B2:D5,查询数据所在列:3(月薪列在B-D区域第三列),怎么个匹配查找法:精确:0)
Excel翻译:=VLOOKUP(B9,B2:D5,3,0)
** 交叉(定位)查询 VLOOKUP**
我们直接来查看相关例子吧。
请看下图:
![](https://img.haomeiwen.com/i2664344/16ef751041163d6b.jpg)
我们可以很自然地根据查找逻辑写出公式:
- 已知条件:A11:B11
- 查找范围:A2:D6
- 需要列:A2:D6区域第三列 3
- 匹配方式:精确 0
公式呼之欲出:=VLOOKUP(A11:B11,A2:D6,3,0)
但是很快就会发现该公式有一个致命缺陷:
我们要在12行求 北京 2016年数额,我们会发现该公式不能用,始终会返回 北京-2015数额。
发生这样的情况,主要是因为列数据不是固定的,2016年明显是第4列数据,那么公式应该是:
=VLOOKUP(A11:B11,A2:D6,[所需数据列],0)
很明显,这里的列是需要动态换算的。这个时候Match函数就要排上用场了。
Match可以返回查找数据所在选择数据区域的行或者列,有一些条件上的约束,然而约束条件越多,对于我们学习就越有利,达到条件就可以。
回到本例中:
年份是会不断变化的,那么我们将年份写成Match函数形式,返回列数。
函数就这样写=MATCH(B11[查找的年份数据],$A$1:$D$1[行区域],0) 。
参数解释:
$A$1:$D$1:用$符号进行锁住区域,因为我们只需要第一行进行查找;
A1:D1是因为VLOOKUP函数从A列开始查找,那么内层的MATCH函数需要匹配上。
注意点:Match函数数据源查找区域只能是一行或者一列,要返回行坐标,选择源就是一列,返回列坐标,选择源就是一行。
准备好了,就剩下公式组装了,我们只需要把VLOOKUP函数公式中的3替换成match函数就行了。
一气呵成:=VLOOKUP(A11:B11,$A$2:$D$6,MATCH(B11,$A$1:$D$1,0),0)
是不是很简单,很符合逻辑呢? 我们一鼓作气,再来一个。
反向查询 VLOOKUP配合IF 就是吊
反向查询,在工作中经常会遇到已知后面条件需要查询前面列的相关数据。我们通过一个例子来看一下一些注意点。
![](https://img.haomeiwen.com/i2664344/0c5e59547b9c8d55.jpg)
我们已知年数额,反过来查询城市。
我们具备了前几个案例的经验,应该很容易就能写出这样的公式:
> =VLOOKUP(C11,A2:D6,1,0)
很遗憾,这么写逻辑是对的,但是结果却是错的,因为返回列一定要在查询列后面,也就是说,如果把A列放到D列后面,那么就可以正常查询。
这个时候,我们就需要配合IF函数,将区域调换,达到A列在末尾的效果。
好了,有了这个工具,我们开始动手写函数表达式。
这里我们需要将选择区域进行顺序调换,我们需要这么写:
> IF({1,0},B2:D6,A2:A6)
我们需要解释一下这里的参数:
- 参数1:{1,0} 我们在这里传入了值为0,1的数组,在计算机世界,0表示假,1表示真,我们这么传,告诉了IF函数,又真又假,别判断了,全给我返回。返回的顺序是先真区域,后假区域;
- 参数2:条件为真时返回的区域,将被优先返回;
- 参数3:条件为假时返回的区域,如有必要,返回顺序将排在最后。
那么我们这么操作以后,相当于在内存中存在着这样的一张表,列名先后顺序分别为:B、C、D、A 。
这样是不是就符合VLOOKUP函数的查询了呢?
这里我就不给出具体写法了,相信看到此处的朋友,应该就能自己写出来了。
案例延伸
总结
在学习Excel查找函数的时候,我们需要牢记他们的原理:你根据什么来查找?在哪个区域找?要不要精确找?
这个是所有查找方式的核心,不管是Excel还是SQL,有了它,我们理解起来就会比较简单,写公式的时候也有明确方向。
搞清楚核心思想,剩下的就是具体问题具体分析了。