绝了!Excel可以这样用 - 数据处理、计算与分析 - IT168文库

2019-08-02 01:31

第5章 海量数据分析的利器——初识查

找引用函数

在Excel 2010版中将内置函数分成12大类,除了所谓不需要学习都会的逻辑函数外, 最常用的就是查找与引用函数,几乎每个用户在工作中都接触过此类函数。

查找与引用函数的应用有一定的难度,很多应用都涉及到数组公式,甚至还需要应用 多维引用技术。这里仅就一些常见的函数及基础的应用做一些讲解,带领读者初识查找引 用函数。

5.1 认识函数中的大众情人

查找与引用函数的普及和其中的一个函数有关。谈到函数公式,绝大多数的Excel用 户会感到很头痛,觉得很专业,也不愿意花时间深入学习。但有一个函数例外,这个函数 难度中等但普及率相当高,可以说几乎所有接触过函数公式的用户都知道这个函数,很多 人了解运用函数公式就是从这个函数开始的。

这个函数就是人见人爱的函数领域中的大众情人——VLOOKUP。

为什么说VLOOKUP函数是函数领域的大众情人?原因在于这个函数的确非常管用, 尤其在处置大量数据的查找时效率可谓惊人。下面以一个实例来认识一下这个神秘的函数。

5.1.1 一个典型的单条件查找示例

某公司月底结账时需要编制进销存报表,进销存报表中D列“本期销售”需要从H列 “销售汇总”中取数,匹配的原则为A列“货号”与G列“货号”相符,如图5.1所示。

图5.1 进销存报表示例

第2篇 计算数据 问题分析:这是一个非常典型的查找问题,D列需要填列的数据在H列已有,仅需要 根据A列与G列货号匹配后返回。在函数应用没有普及的时候,很多人的做法是一个个手 工查找,然后把找到的数值录入电脑。这种做法现在早已成为笑谈。

5.2 所示的结果。 解决方案:在 D2 单元格录入一个函数公式然后向下复制,得到如图

=VLOOKUP(A2,$G$1:$H$15,2,0)

图5.2 VLOOKUP函数查找返回的结果

公式解析:由上述公式可见VLOOKUP函数有4个参数,VLOOKUP函数的语法结构 如下:

这个函数的含义就是在查找区域中的第1列查找,如有找到则返回该值在查找区域中 对应列的值,4个参数的含义如表5.1所示。

表5.1 VLOOKUP函数4个参数的理解

参数顺序 第1参数 第2参数 第3参数 第4参数 参数含义 要查找的值 查找的区域 查找区域中返 2 回的列 查找模式 0 A2 上例中的取值 在查找区域的第1列中查找 如第4参数是精确匹配则区域第1列不需要排序, $G$1:$H$15 如是模糊匹配则需要对区域的第 1 列升序排序 返回查找值在查找区域中所在行第2列的值 等价于FALSE,精确匹配,如果为1或者TRUE, 模糊匹配 VLOOKUP(要查找的值,查找的区域,查找区域中返回的列,查找模式) 注 意 事 估计很多初学者看了上面这个表格后仍很难理解透彻,刚接触函数时一下子要理解这

D2 单元格返回的值 么多概念的确不容易。我们可以先跳过难以理解的理论部分内容,从

来看一下函数公式的运算原理。遇到问题时再回过来看对于函数参数的解释。

以D2单元格中的公式为例,就是在查找区域$G$1:$H$15的第1列中查找A2单元格 的值“E091”,结果在G6单元格中查到了结果,这时候返回查找区域$G$1:$H$15对应行 (第 6 行)第 2 列的值。查找演示如图 5.3 所示。

·128 ·

第5章 海量数据分析的利器——初识查找引用函数

图5.3 查找结果演示

备注:第4参数在保留第3个参数和第4个参数之间的“,”,后面省略内容和使用0 值或者False是等价的,以下两个公式也能返回类似的结果:

职场点睛:演示的示例中只有10多行,实际工作中的数据源可能有成百上千行,一 样只要用一个公式向下复制就能解决问题。学会这个函数后在实际工作中遇到类似问题可 以大幅度提高工作效率。

=VLOOKUP(A2,$G$1:$H$15,2,) =VLOOKUP(A2,$G$1:$H$15,2,FALSE) 5.1.2 VLOOKUP函数的局限性

大众情人往往并不完美,实际生活中如此,函数领域中亦如此。VLOOKUP函数在大 数据量查找中具有优势,但也有其局限性。使用VLOOKUP函数最常见的困惑有如下几种:

? 查找值必须位于查找区域的第一列;

? 仅能处理单条件查找的问题;

? 只能返回满足查找条件的第一个值;

? 不能用一个公式返回所有满足条件的查找值。

我们没有必要为难 VLOOKUP 函数,退一步海阔天空,思路开阔一些,运用其他函数

也能轻松搞定查找问题。本章后续将介绍MATCH、INDEX、LOOKUP、OFFSET、 INDIRECT、ROW、COLUMN等查找与引用函数。正如一个人的能力是有极限的,一个 函数的能力也是有限的,运用函数组合能够解决更多的问题。

本节示例文件:《5.1 认识函数领域的大众情人.xlsx》。

5.2 突破VLOOKUP函数反向查找的限制

接触函数领域的大众情人——VLOOKUP函数后,既惊艳其在海量数据查找中的高效, 也有一些遗憾,比如查找值必须位于被查找区域的第一列。

·129·

第2篇 计算数据 实际工作中需要查找的值未必就在被查找区域的第一列,这类问题称之为“反向查 找”。直接用VLOOKUP函数无法解决,需要做一些技术处理。

5.2.1 一个反向查找的例子

如图5.4所示,学生的学号与姓名是一一匹配的,如已知学号要查找姓名,可以用 VLOOKUP 函数解决, F2 单元格公式如下:

=VLOOKUP(E2,A2:B10,2,0) 但反过来已知姓名要查找学号,直接用

VLOOKUP 函数就不行了。

图5.4 已知姓名查询学号

1.问题分析

这里直接用VLOOKUP不行,原因在于在查找区域中需要返回的“学号”在“姓名” 的左边,也就是不符合需要查找项目“姓名”在查找区域A2:B10的第一列的条件。

2.解决方案1

知道了问题的所在,解决就容易了。如果在“学号”的左侧有一列“姓名”,这个问

题就迎刃而解了。一个笨方法是在 A 列“学号”之前插入一列,复制原 B 列“姓名”的内 容,这样就可以直接使用VLOOKUP函数了。

这种方法思路是对的,但操作方法不可取。不建议随意更改数据源,用函数完全能达 到插入一个辅助列,重构数据源的效果。在F5单元格录入如下公式:

公式解析:整个公式外层还是 VLOOKUP 函数,关于这个函数的用法不再赘述。 公式中使用了一个IF函数作为VLOOKUP函数的第2参数,在编辑栏中选取这一段 函数“IF({1,0},B2:B10,A2:A10)”,按F9键,返回结果为:

返回结果中的花括号代表数组,逗号表示同行不同列,分号表示换行。整个返回结果

·130 ·

=VLOOKUP(E5,IF({1,0},B2:B10,A2:A10),2,) {\管莺菲\石永绍\越俊\崔亨\于成中\狄影淑\糜彩青\秋彩伊\裘健栋\

第5章 海量数据分析的利器——初识查找引用函数 代表一个9行2列的内存数组。

如果直接用F9键看不容易理解,还可以将这个IF函数的运算结果放到单元格中。选 取H2:I10单元格区域,录入公式“=IF({1,0},B2:B10,A2:A10)”,按Ctrl+Shift+Enter三 键结束,返回结果如图 5.5 所示。

图5.5 IF函数返回结果分析

由上图可见,使用IF函数,返回了一个内存数组,相当于重构了一个区域,而这个重 构的区域正好满足使用VLOOKUP查找时查找值位于被查找区域第一列的要求。

3.函数套路——IF{1,0}解析

关于IF函数在第4章中有过介绍,这里IF函数的用法和常规不同。第1个参数中使 用了一个常量数组{1,0},第2、3参数各使用了一列数据区域。对于返回结果,可以理解

2的数组与另一个9 * 1的数组的运算。返回的是一个9 * 2的数组,具体原理可参 为一个1 * 阅第4章4.6节中两个不同方向一维数组的运算。

如能理解数组运算的原理,就能明白为什么IF函数第1参数不能写成{1;0},不要小

{1;0} 看仅一个符号的差异,逗号表示横向,分号表示纵向,使用 ,整个 IF 函数返回的结

1的数组与一个9 * 1的数组运算,因这两个数组方向相同大小不一样, 果相当于是一个2 *

部分返回值会出错,使用F9键测试的结果是{\管莺菲\

#N/A;#N/A;#N/A} ,仅是一个 9 行 1 列的数组,如图 5.6 所示。

图5.6 IF{1,0}中逗号与分号的差异

如果能够理解 IF{1,0} 的返回结果,读者可以自行测试以下公式:

·131·


绝了!Excel可以这样用 - 数据处理、计算与分析 - IT168文库.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:垃圾场人员岗位及设备配置

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: