1、VLOOKUP
VLOOKUP函数的作用是根据指定的查询值,在数据区域内实现从左到右的数据查询。
用法为:
VLOOKUP(要找谁,在哪个区域找,返回第几列的内容,精确匹配还是近似匹配)
先从查询区域最左侧列中找到查询值,然后返回同一行中对应的其他列的内容。
例如下图中,要根据E3单元格中的领导,在B~C列的对照表中查找与之对应的秘书姓名。
F3单元格公式为:
=VLOOKUP(E3,B2:C8,2,0)
公式中,“E3”是要查找的内容。
“B2:C8”是查找的区域,在这个区域中,最左侧列要包含待查询的内容。
“2”是要返回查找区域中第2列的内容,注意这里不是指工作表中的第2列。
“0”是使用精确匹配的方式来查找。
2、HLOOKUP
下图中,要根据A7单元格中的领导,在2~3行的对照表中查找与之对应的秘书姓名。
B7单元格公式为:
=HLOOKUP(A7,2:3,2,0)
HLOOKUP函数的作用与VLOOKUP函数类似,能够根据指定的查询值,在数据区域内实现从上到下的数据查询。
用法为:
HLOOKUP(要找谁,在哪个区域找,返回第几行的内容,精确匹配还是近似匹配)
先从查询区域第一行中找到查询值,然后返回同一列中对应的其他行的内容。
公式中,“A7”是要查找的内容。
“2:3”是查找的区域,表示第二到第三行的整行引用。
在这个区域中,第一行要包含待查询的内容。
“2”是要返回查找区域中第2行的内容,注意这里不是指工作表中的第2行。
“0”是使用精确匹配的方式来查找。
3、LOOKUP
下图中,要根据E3单元格中的秘书,在B~C列的对照表中查找与之对应的领导姓名。
F3单元格公式为:
=LOOKUP(1,0/(C3:C8=E3),B3:B8)
LOOKUP函数能够在一行或一列的区域中查询指定内容,并返回另一个行列范围中对应位置的值。
常用写法为:
LOOKUP(1,0/(条件区域=指定条件),要返回结果的区域)
公式中的“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个单元格的内容。
4、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函数二者组合,能实现任意方向的数据查询。
5、XLOOKUP
如果你使用的是Excel 2019或以上版本,还可以使用XLOOKUP函数。
如下图,F3单元格输入以下公式,向下复制到F4单元格,可以根据E列的姓名查找对应的领导姓名。
=XLOOKUP(E3,C$3:C$8,B$3:B$8,”查无此人”)
XLOOKUP函数的作用是查找数据在一行或一列中所处的位置,并返回与之对应的另一行或另一列中的内容。
常用写法为:
XLOOKUP(要找谁,在哪行或哪列找,返回哪行或哪列,找不到时返回什么)
公式中的E3是要查找的秘书姓名,C$3:C$8是查找的区域,B$3:B$8是要返回内容的区域。
如果C$3:C$8单元格区域中的某个单元格和E3中的内容相同,就返回B$3:B$8单元格区域对应位置的领导名称。如果C$3:C$8单元格区域中没有和E3相同的内容,公式返回“查无此人”。
6、FILTER
使用Excel 2021版本的小伙伴,还可以使用FILTER函数。
如下图,F3单元格输入以下公式,向下复制到F4单元格,可以根据E列的姓名查找对应的领导姓名。
=FILTER(B$3:B$8,C$3:C$8=E3,”查无此人”)
FILTER函数的作用是根据指定的条件,返回数据区域中符合条件的所有记录。
常用写法为:
FILTER(要返回内容的数据区域,筛选条件,找不到时返回什么)
本例中,筛选条件为C$3:C$8=E3,如果某一行的筛选条件成立,FILTER函数就返回B$3:B$8单元格区域中,所对应行的记录。
如果有多个符合条件的记录,FILTER函数会将多个结果自动溢出到相邻单元格内。