关于VLOOKUP,你必须知道的23件事(中)

7.你可以强迫VLOOKUP执行完全匹配

要强迫VLOOKUP找到完全匹配,确保设置第4个参数(range_lookup)为FALSE或0。下面两个公式等价:

=VLOOKUP(value,table,column,FALSE)

=VLOOKUP(value,table,column,0)

在完全匹配模式下,当VLOOKUP不能找到值时,返回#N/A。清楚地表明没有在表中找到值。

8.你可以告诉VLOOKUP执行近似匹配

要使用VLOOKUP的近似匹配模式,忽略第4个参数(range_lookup)或者设置其为TRUE或1。下面3个公式等价:

=VLOOKUP(value,table,column)

=VLOOKUP(value,table,column,1)

=VLOOKUP(value,table,column,TRUE)

推荐总是显式设置range_lookup参数,即使VLOOKUP不需要。这样,你总能明显地看到你期望的匹配模式。

9.对于近似匹配,数据必须排序

如果使用近似匹配模式,那么数据必须根据查找值按升序排序。否则,可能得到的是错误结果。同时注意,有时文本数据可能看起来已排序,虽然实际上并没有排序。

全球通史:从史前史到21世纪(第7版修订版上下册,当当独家赠送全球通史主题笔记本)

作者:dangdang

当当

10.VLOOKUP能够合并不同表中的数据

VLOOKUP的常见使用示例是连接来自两个或多个表中的数据。例如,可能在一个表中有订单数据,在另一个表中是客户数据,想要将一些客户数据合并到订单表中进行分析:

图7

由于客户Id在两个表中都存在,可以在VLOOKUP中使用这个值来提取数据,只需配置VLOOKUP使用表1中的Id值,表2中相应的列索引和数据。在上例中,使用两个VLOOKUP公式,一个提取客户名称,另一个提取客户状态。

图8

11.VLOOKUP能够识别或分类数据

如果需要将任意类别应用于数据记录,那么可以使用VLOOKUP轻松完成此操作,方法是使用担当“键”的表来赋值分类。

一个经典的例子是基于分数来赋值成绩:

图9

本例中,VLOOKUP设置为近似匹配,因此表按升序进行排列是重要的。

然而,也可以使用VLOOKUP来赋值任意类别。在下面的例子中,使用VLOOKUP来为每个部门计算一个组,使用了定义分组的小表(称为“key”)。

图10

12.绝对引用使VLOOKUP更具可移植性

在打算从表中获取多于1列的信息的情形下,或者需要复制和粘贴VLOOKUP时,可以通过对查找值和表数组使用绝对引用来节省时间。这可让你复制公式,然后仅改变列索引编号以使用相同的查找来从不同列中获取值。

下面的示例中,因为查找值和表数组是绝对引用,所以可以跨列复制公式,然后按需要回来修改列索引。

图11

13.命名区域使VLOOKUP更容易阅读(并且更可移植)

绝对单元格区域相当难看,因此可以通过使用命名区域代替绝对引用使VLOOKUP公式更简洁易读。

在图11中,命名输入单元格为“id”,命名表中的数据为“datas”,可以编写公式:

图12

不仅公式易读,而且更具可移植性,因为命名区域自动为绝对引用。

邪不压正

主演:姜文 / 彭于晏 / 廖凡

猫眼电影演出

14.插入列可能中断现有的VLOOKUP公式

如果工作表中已经存在VLOOKUP公式,那么在表中插入列时可能中断公式。这是因为当插入或删除列时,硬编码的列索引值不会自动更改。

本示例中,当在Year和Rank之间插入新列后,查找Rank和Sales被中断,而Year工作正常,因为其所在列在插入列的左侧,没有受到影响:

图13

为了避免这种问题,可以使用下文描述的技巧计算列索引号。

15.可以使用ROW或COLUMN计算列索引号

如果不想在复制公式后还要对公式进行编辑,那么可以使用ROW或COLUMN来生成动态的列索引号。如果从连续列中获取数据,这个技巧可让你设置一个VLOOKUP公式,然后将其复制而无需进行任何修改。

本例中,使用COLUMN函数生成动态的列索引号。在单元格C3中,COLUMN函数返回当前列的列号3,将其减去1得到表中列的索引号,然后向右复制该公式:

图14

所有的公式都是相同的,不需要任何编辑。使用的公式如下:

=VLOOKUP(ids,datax,COLUMN()-1,0)

(0)

相关推荐