只会VLOOKUP还不够
说起Excel中的数据查询,VLOOKUP可真是大名鼎鼎。这年头,做表格的人要是没听说VLOOKUP,喝酸奶都不好意思舔瓶盖。VLOOKUP函数果真所向披靡吗?今天就和大家一起说说Excel中的数据查询那些事儿。
先说说VLOOKUP,作用嘛,就是能够实现从左到右的数据查询。
用法是:
VLOOKUP(要找谁,在哪个区域找,返回第几列的内容,精确匹配还是近似匹配)
先从查询区域最左侧列中找到查询值,然后返回同一行中对应的其他列的内容。
例如下图中,要根据E3单元格中的领导,在B~C列的对照表中查找与之对应的秘书姓名。
F3单元格公式为:
=VLOOKUP(E3,B2:C8,2,0)
公式中,“E3”是要查找的内容。
“B2:C8”是查找的区域,在这个区域中,最左侧列要包含待查询的内容。
“2”是要返回查找区域中第2列的内容,注意这里不是指工作表中的第2列。
“0”是使用精确匹配的方式来查找。
假如表格的结构比较特殊,VLOOKUP函数就傻眼了。像下图中,要根据A7单元格中的领导,在2~3行的对照表中查找与之对应的秘书姓名。
B7单元格公式为:
=HLOOKUP(A7,2:3,2,0)
HLOOKUP函数是VLOOKUP异父异母的亲弟弟,作用嘛,就是能够实现从上到下的数据查询。
用法是:
HLOOKUP(要找谁,在哪个区域找,返回第几行的内容,精确匹配还是近似匹配)
先从查询区域第一行中找到查询值,然后返回同一列中对应的其他行的内容。
公式中,“A7”是要查找的内容。
“2:3”是查找的区域,不要被数字迷惑了,这种写法就是第二到第三行的整行引用而已。
在这个区域中,第一行要包含待查询的内容。
“2”是要返回查找区域中第2行的内容,注意这里不是指工作表中的第2行。
“0”是使用精确匹配的方式来查找。
假如表格的结构再特殊点,VLOOKUP和HLOOKUP函数就都傻眼了。
像下图中,要根据E3单元格中的秘书,在B~C列的对照表中查找与之对应的领导姓名。
F3单元格公式为:
=LOOKUP(1,0/(C3:C8=E3),B3:B8)
LOOKUP函数是VLOOKUP异父异母的亲妹妹,本例中的作用嘛,是在指定的行或列中查询指定的内容,并返回另一个范围中对应位置的值。
常见用法是:
LOOKUP(要找谁,在哪行或哪列找,要返回结果的行或列)
公式中,“1”是要查找的内容。
“0/(C3:C8=E3)”是查找的区域,不要被这段公式迷惑了,这种写法是模式化的,就是0/(条件区域=查找值)。
先使用等号,将条件区域的内容与查找值进行逐一对比,返回逻辑值TRUE或是FALSE。
再使用0除以逻辑值,在四则运算中,逻辑值TRUE相当于1,FALSE相当于0。相除之后变成了一组错误值和0。
{#DIV/0!;0;#DIV/0!;#DIV/0!;#DIV/0!;#DIV/0!}
也就是条件区域中的某个单元格如果等于查找值,对应的计算结果就是0,其他都是错误值。
LOOKUP在这组内容中查找1的位置,找不到1就用0顶包,0的位置是2,所以最终返回第三参数B3:B8中第2个单元格的内容了。
LOOKUP函数的查找区域和返回结果区域,都是一行或一列的写法,所以可以实现任意方向的查询。
LOOKUP函数是不是就最牛了呢?NO,NO,NO,INDEX和MATCH函数表示不服。
仍以刚刚的数据为例,要根据E3单元格中的秘书,在B~C列的对照表中查找与之对应的领导姓名。
F3单元格公式为:
=INDEX(B2:B8,MATCH(E3,C2:C8,0))
MATCH函数的作用,是查找数据在一行或一列中所处的位置。
用法是:
MATCH(要找谁,在哪行或哪列找,精确匹配还是近似匹配)
公式中的MATCH(E3,C2:C8,0)部分,就是精确查找E3单元格中的小袁秘书在C2:C8中所处的位置,结果是3。
INDEX函数的作用,是根据指定的位置信息,返回数据区域中对应位置的内容。
本例中,先用MATCH函数计算出小袁秘书的位置3,再用INDEX函数返回B2:B8区域中第3个单元格的内容。
INDEX+MATCH函数二者组合,也能实现任意方向的数据查询。
几种方法,各有特点,只有平时多学多练,遇到问题才能对症下药。每天学习一点点,小白也能变大神。
今天的练习文件在此:
https://pan.baidu.com/s/1geOWL0DRDDUrFtIfH3RpPw