职场菜鸟成长记工具癖上班这点事儿

我有3个案例,帮你全面掌握Excel查找函数

2017-04-08  本文已影响394人  宋大肿

Excel中函数众多,查找算是其中的一个重要内容,那么今天就来了解一下Excel里面的常用查找函数相关内容。

实际的工作中遇到的每一个问题都由是什么?为什么?怎么做?这样三个核心内容所构成,我们能够正确分析出每一个问题的核心构成,就能对症下药,找出适合的解决方案。这才是Excel学习的难点所在。

万丈高楼平地起,今天我们就先来看看查询所用的相关函数。

VLOOKUP 函数查询

我们知道日常生活中查询的逻辑顺序如下:
> 根据已知信息去仓库中查询所需信息。
那么Excel中的查询所依据的就是这个逻辑原则,只要你平常有过信息查询的经验,就会比较好理解,那么我们所需要做的就是将我们日常的操作过程按照Excel的规范翻译成相应函数代码就行了。

具体怎么做呢?
下面我们来看几个案例,相信会有很大的帮助。

单维度查询

VLOOKUP
已知工号,需要进行查询对应的月薪。
=VLOOKUP(B9,B2:D5,3,0)
先别想着直接写出函数,想想要是没有函数我们会怎么做?
  1. 提供了工号,那我们就去数据源找到对应工号的列,发现是B列;
  2. 在B列寻找,找到对应工号——ty003;
  3. 将我们的视线往后移动一列,发现是性别列,不是我们需要的列,再往后移动,知道找到目标列;
  4. 根据已知列的值,精确找到目标数值。

我们要做的就是翻译以上步骤:

 中文翻译:查(已知条件:B9,数据区域:B2:D5,查询数据所在列:3(月薪列在B-D区域第三列),怎么个匹配查找法:精确:0)    

 Excel翻译:=VLOOKUP(B9,B2:D5,3,0)  

** 交叉(定位)查询 VLOOKUP**

我们直接来查看相关例子吧。
请看下图:

VLOOKUP 交叉定位
我们可以很自然地根据查找逻辑写出公式:
  1. 已知条件:A11:B11
  2. 查找范围:A2:D6
  3. 需要列:A2:D6区域第三列 3
  4. 匹配方式:精确 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 就是吊

反向查询,在工作中经常会遇到已知后面条件需要查询前面列的相关数据。我们通过一个例子来看一下一些注意点。

逆向查询
我们已知年数额,反过来查询城市。
我们具备了前几个案例的经验,应该很容易就能写出这样的公式:
> =VLOOKUP(C11,A2:D6,1,0)
很遗憾,这么写逻辑是对的,但是结果却是错的,因为返回列一定要在查询列后面,也就是说,如果把A列放到D列后面,那么就可以正常查询。

这个时候,我们就需要配合IF函数,将区域调换,达到A列在末尾的效果。
好了,有了这个工具,我们开始动手写函数表达式。

这里我们需要将选择区域进行顺序调换,我们需要这么写:
> IF({1,0},B2:D6,A2:A6)

我们需要解释一下这里的参数:

  1. 参数1:{1,0} 我们在这里传入了值为0,1的数组,在计算机世界,0表示假,1表示真,我们这么传,告诉了IF函数,又真又假,别判断了,全给我返回。返回的顺序是先真区域,后假区域;
  2. 参数2:条件为真时返回的区域,将被优先返回;
  3. 参数3:条件为假时返回的区域,如有必要,返回顺序将排在最后。

那么我们这么操作以后,相当于在内存中存在着这样的一张表,列名先后顺序分别为:B、C、D、A 。

这样是不是就符合VLOOKUP函数的查询了呢?

这里我就不给出具体写法了,相信看到此处的朋友,应该就能自己写出来了。

案例延伸

总结

在学习Excel查找函数的时候,我们需要牢记他们的原理:你根据什么来查找?在哪个区域找?要不要精确找?
这个是所有查找方式的核心,不管是Excel还是SQL,有了它,我们理解起来就会比较简单,写公式的时候也有明确方向。
搞清楚核心思想,剩下的就是具体问题具体分析了。

上一篇 下一篇

猜你喜欢

热点阅读