第5章 海量数据分析的利器——初识查找引用函数
图5.32 VLOOKUP查找未消错
=IFERROR(VLOOKUP(A2,$G$1:$H$13,2,0),0) IFERROR函数有2个参数,第1个参数是需要消错的公式,第2个参数是第1参数计
1 参数的结果出错则返回第 2 参数,否 算结果出错时返回的内容。运算结果可以理解为第
则就返回第1参数的运算结果。
5.8.2 2003版中的消错方法
如果用户尚未升级到2007版以上,消错会麻烦很多,可以先用IS类函数判断是否存 在错误,然后再外套IF函数处理,上述公式需更改为如下:
其中错误的公式如 VLOOKUP 函数要出现 2 次,明显不如使用 IFERROR 函数消错 简洁。
职场点睛:学会对函数公式运算结果消错很重要,比较一下消错前后的表格,消错后 的表格不仅美观,还会给人留下表格制作者很专业的印象。
本节示例文件:《5.8 查找结果报错的处理.xlsx》。
=IF(ISNA(VLOOKUP(A2,$G$1:$H$13,2,0)),0,VLOOKUP(A2,$G$1:$H$13,2,0)) 5.9 查找引用函数之实战应用
Excel学习贵在实战应用,本节将举一些查找引用函数的常见应用,帮助加深理解。
5.9.1 计算分类百分比
如图5.33,要求在D2单元格中录入一个公式,向下复制到D13单元格,完成各品类 水果在各产地中的数量占比。
1.问题分析
数据透视表中有分类百分比的功能,使用函数计算也不难。分析公式就是一个简单的 除法,被除数依次为C列的单元格引用,从C2单元格到C13单元格,但除数不一样,如
·151·
第2篇 计算数据 图5.33中的F列分析。
图5.33 计算分类百分比
如果能使用一个函数查找引用到C5、C10、C13单元格,问题就简单了。总结数据区 域的规律如下:
?
除数引用的单元格区域是分段变化的,第一段是是C13;
C5、第二段是C10、最后一段
? 除数引用单元格在A列的文字都有“小计”两个字。
对于返回单元格引用分段变化,可以考虑改变公式中的单元格引用类型,在公式向下 复制时引用不同的单元格区域。
对于查找值如有共性内容,可以考虑在查找中使用通配符。
2.解决方案
在D2单元格中录入如下公式,并向下复制完成。 =C2/VLOOKUP(\ 小计\ * 3.公式解析
公式中的除数是一个VLOOKUP函数,第1参数使用“\ * 小计\”。这里的“ * ”是通 配符,代表查找以任意字符开头、“小计”结束的字符串。
VLOOKUP函数第2参数使用了“A2:C$13”区域,上限没有锁定,随着公式向下复 制,引用区域会依次变为“A3:C$13”、“A4:C$13”、“A5:C$13”、…“A12:C$13”、 A13:C$13” ,实现查找返回值的分段变化。 “
5.9.2 查找客户首次还款月份
如图5.34,需要在J列填列各个客户当年第一笔还款的月份。 1.问题分析
这是一个查找问题,一般查找第一个(或者是唯一的)可以想到精确查找,查找最后
·152 ·
第5章 海量数据分析的利器——初识查找引用函数 一个可以想到模糊查找。这里可以使用MATCH函数返回第一笔还款所在的列数,然后外 套INDEX函数;也可以在查找到第一笔还款所在的列数后连接上字符“月”。
图5.34 首次还款月份
2.解决方案
在J2单元格录入如下公式,按三键结束,向下复制完成。 =MATCH(,0/B2:I2,)&\月\ 3.公式解析
数据区域中有很多空格,这里使用“0/B2:I2”将空格变成了错误值#DIV/0!,其他数值
,按 F9 键后返回结果为: 返回 0 。选中 J2 单元格,在编辑栏中选取这一段公式“ 0/B2:I2” \? 将这一段公式放到B8:I8单元格中,看起来会更加清楚,如图5.35所示。
图5.35 公式分解运算结果
这里使用的MATCH函数是精确查找,第1个参数在逗号之前省略,相当于查找0, 即返回第1个0所在的位置3,然后用连接符&连接上“月”,即得到首次还款所在月份。 使用连接符连接“月”属于取巧,如果B1:I1单元格区域中的月份不是从1月份开 始,上述公式会返回错误的结果。标准的公式如下:
这也是一个数组公式,需要按三键结束。MATCH函数部分理解同上,外套INDEX函 数在B$1:I$1单元格区域中返回MATCH函数查找得到位置的月份。使用B$1:I$1的写法 是考虑到公式要向下复制,需要锁定所在的行。
=INDEX(B$1:I$1,MATCH(,0/B2:I2,))
·153·
第2篇 计算数据 5.9.3 另类的多条件查找
Excel 中很多技巧就是来源 世界之大真可谓无奇不有!有些用户做的表格非常奇怪,
于不规范的表格。如图5.36所示,A:D是数据源,一共有1044行,G3:I13单元格中是 各个供应商的进货数量,在J列中对于有进货的供应商查找对应物料代码的进货价格。
图5.36 另类的多条件查找
1.问题分析
在查找区域中如果把供应商单独设置成一列,原来3列的进货数量可以仅使用一列, 问题就变成了一个典型的多条件查找,根本没有悬念,如图5.37所示。
图5.37 规范的表格
J3 单元格公式向 要查找的表格虽然不符合制表规则,但还是有规律可循的。如果能在
下复制时引用的供应商名称会随之变动,还将回到多条件查找的套路上。
再次引用一下函数帮助文件中的经典语句——“如果需要更改公式中对单元格的引 用,而不更改公式本身,请使用函数INDIRECT”。
2.解决方案
在J3单元格中录入如下公式,按三键结束,向下复制完成。
·154 ·

