VLOOKUP函数在日常工作中十分常见,以至于你要是没用过VLOOKUP函数,你都不好意思说你懂EXCEL。
一般情况下,我们需要在源数据中查找某个指定列的数据,就会用到VLOOKUP函数(如果是指定行的数据,则用HLOOKUP函数)。这个时候“指定列”一般习惯用常数(如1,2,3,4,5)。
那么,如下图,当需要在绿色单元格引用源数据表中的多列函数时,公式/函数该如何写?
乍一看,这个不难啊,三个字段“性别”,“兴趣”“电话”分别用VLOOKUP函数写个公式就好了。嗯,用三个VLOOKUP函数固然可以。但是,如果有5个字段,20个字段呢?这个,是不是有点烦躁?
VLOOKUP函数与MATCH函数嵌套
今天我们要用VLOOKUP函数与MATCH函数嵌套使用获取多列数据,以提高效率。
1. VLOOKUP函数
语法:VLOOKUP(lookup_value,table_array,col_index_num,range_lookup)
第三参数 col_index_num 可以是常量(指定第几列),也可以是变量(通过函数运算返回一个数字)。如果能在第三参数写进一个函数,是不是可以根据不同字段返回不同列数呢?
2. MATCH函数
含义:返回指定数值在指定数组区域中的位置
语法:MATCH(lookup_value, lookup_array, match_type)
从MATCH函数含义可以看出,MATCH函数返回的是“位置”(数字),恰好可以满足我们的要求。
3. VLOOKUP函数与MATCH函数嵌套使用
现在我们在I2单元格输入以下公式:
=VLOOKUP($H2,$A$1:$F$9,MATCH(I$1,$A$1:$F$1,0),0)
然后复制粘贴到所有的绿色单元格,或者向右,向下拖拽。可以看到结果完全正确。
在这里,MATCH函数将查找“性别”,“兴趣”,“电话”在A1到F1中的位置,再将返回值(数字)赋与VLOOKUP第三参数。那么,无论有多少个需要查找的字段,这个MATCH函数都相应返回对应的位置数字。也就是说,我们只需要写这一个公式就够了。
4. 成败关键—混合引用
$A$1 绝对引用。复制或者拖拽,引用单元格固定不变。
A1 相对引用。复制或者拖拽,引用的单元格根据行/列位置变化而变化。
$A1或者A$1 混合引用。复制或者拖拽,$符号后面的行/列保持不变。
在上面的例子中,我们需要在固定在H列中找到查找值,所以VLOOKUP函数中一定要在H2的H前加上$符号,得到$H2;
同时,我们需要固定在第一行中找到查找的字段,所以MATCH函数中一定要在I1的1前加上$符号,得到I$1。
如此,才能确保我们在复制/拖拽过程中单元格被正确引用。如果希望进一步加深理解绝对/相对/混合引用,可以尝试做一个“九九乘法表”。如下图:
5. 延伸思考
COLUMN函数,ROW函数返回的分别是单元格所在第几列,第几行。在这个例子中能不能用VLOOKUP函数和COLUMN函数嵌套?效率如何?在什么情况下时候嵌套更好用呢?
这几个问题留给大家思考,有兴趣的话欢迎私信我交流讨论。
飞机从北京飞往纽约,一定不止一条航线,可以往北极方向飞,也可以往南极方向飞,还可以跨太平洋飞。但是最后航空公司一般会选择往北极方向飞。因为这条航线效率高,经济效益最好。
同理,在使用EXCEL的过程中,我们也需要不断思考,如何让我们的工作效率变得更高?
Copyright reserved @ 黄波艺带你玩转Excel。欢迎转载,但请注明出处。