你所不理解的V LOOKUP函数
我们经常需要将一个表格里的内容汇总到另一个表格(总表)里去,例如下图中,我们需要将表2 的内容合并到表1中,你或许有过以下的做法。
接到这样的任务,或许你曾经有过这样的做法:
就这样逐条查找然后复制粘贴,数据量少还好,如果是上千行,我估计你会做到吐。这样的做法效率极其低下,不符合excel设计的初衷:减少重复性劳动。那有什么更好更快捷的办法呢?我相信只要是用过Excel的朋友,头脑里的第一反应都是V LOOKUP函数。坊间传言,如果你没用过V LOOKUP,就等于你没用过excel。向上面的例子,如果用V LOOKUP函数,几秒钟就可以搞定;现在我就简单来操作一下:
此例中我们希望通过A2单元格的值在表2中搜索到与它相等的值,然后再通过这个值,从而找到我们要填入的数学成绩。
1.lookup value:我们用什么去查找?我们查找的值一定要在查找范围里要存在。
2.Table Array:到哪里去查找?当然是我们想要复制数据出来的表格。写完前两个参数,excel就会帮我们找到查找值在查找范围里的单元格,相当于CTRL+F搜索的结果。
3.Col-index-column:你想要填充哪一列的内容?Excel确定了需要填充的内容在哪一行后我们需要明白无误告诉它该填充哪一列的内容,从Table array的最左边列开始往右数的列序号。
4.lookup range:你的查找方式是什么?精确查找还是近似查找?0或者1?
关于单元格的引用的技巧
单元格引用有相对引用、绝对应用以及混合引用。所谓引用,指的是在公式的拖拽中,单元格的位置是否变化。
1.相对引用
一句话概括,引用单元格的地址可能会发生变动。可能大家不理解,其实就是基于包含公式和单元格引用的单元格的相对位置。如果公式所在单元格的位置改变,引用也随之改变。如果多行或多列地复制公式,引用会自动调整。在默认的情况下,新公式使用的是相对引用。
例如,B2单元格公式为=A1,将B2单元格的相对引用复制到B3,则会自动从=A1调整为=A2。
2.绝对引用
引用的单元格地址不可能会发生变动。也就是说,总是在指定位置引用单元格,如果公式所在单元格的位置改变,绝对引用保持不变。如果多行或多列地复制公式,绝对引用将不作调整。
例如,将B2单元格的绝对引用复制到B3,那么两个单元格都是$A$1.
3.混合引用
分为列绝对,行相对和行绝对,列相对这两种情况。
列绝对,行相对:复制公式时,列标不会发生变化,行号会发生变化,单元格地址的列标前添加$符号,如$A1,$C10,$B1:$B4。
行绝对,列相对:复制公式时,行号不会发生变化,列标会发生变化,单元格地址的行号前添加$符号,如A$1,C$10,B$1:B$4。
"$"在行号前,行不变,在列号前,列不变。可自己输入,也可按住选中单元格名称后按F4调整。
精确查找的技巧
在V LOOKUP函数里,通常lookup value为混合引用的固定列,table array是固定的。col-index-column,要么为常量,要么使用match函数或者其他函数确定;第四个参数为0,即为精确查找,lookup value必须在查找范围内必须存在。
1.请从表3中查询内容并填充到表1的黄色单元格;在写公式的话,要充分考虑公式的复制问题。
=VLOOKUP($B8,$L$16:$Q$49,MATCH(C$7,$L$15:$Q$15,0),0)
1)lookup value:C8:D27的值都是通过B列的值查找出来的,因此当公式复制时,列不能动
2)Table Array:查找的值永远都在表3里,因此,table array需要完全固定;
3)Col-index-column:需要填充的列,通过match函数来确定,match函数是专门用来确定某个单元格在某一列或者行的中位置的函数,这个函数有3个函数,(查找值,查找范围,精确还是近似),本例中,需要知道的是C7这个标题在L15:Q15标题行中从左至右数是第几个。
4)第四个参数为“0”时,表示是精确查找,即lookup value在查找范围内必须要存在。
请看操作:
2.请从表2中查询内容并填充到表1的绿色单元格。
1)所有空白单元格都需要在表2中查询到相应的值然后填充;
2)通过定位功能来选定需要填充公式的单元格;
3)所有的值都需要通过客户编号查找出来的,因此B2单元格需要绝对引用;
4)match函数中的lookup value不能锁定,因为需要向右向下复制;
近似查找的技巧
在下列表格中,需要根据成绩等次表来判断每个人的分数属于哪个等次。凡是涉及评级的查询,用vlookup的近似查找。
V LOOKUP函数总结
1.lookup value必须在查询范围的最左边列;
2.lookup value不能从左往右查询,通常情况下无法反向查询(使用数组可以实现);
3.如果lookup列中的单元格内容有空格,一定要去掉,否则会出现错误;
4.数据类型一定要统一;