昨天使用INDEX和MATCH两个EXCEL函数完成了表中数据的快速查找,想一想,EXCEL中还有另外的查找函数,比如HLOOKUP、VLOOKUP、LOOKUP、XLOOKUP函数,那使用它们能不能完成同样的操作呢?
可以的。
仍然是昨天的问题:Excel如何根据两列条件查找另一张表的行和列?
1、使用HLOOKUP和MATCH完成
HLOOKUP(lookup_value,table_array,row_index_num,range_lookup)
lookup_value:要查找的值,数值、引用或文本字符串,在数据表第一行中进行查找的数值
table_array:要查找的区域,数据表区域
row_index_num,返回数据在要查找的区域的第几行数,正整数
range_lookup,模糊匹配/精确匹配,TRUE /FALSE(或不填)
HLOOKUP中的H即Horizontal(水平),结合在数据表第一行中进行查找的数值与row_index_num一起,理解这个函数为在一块区域内查找给定值,确定列,然后根据该列给定的行号返回最终查找的结果值。
先看完成结果:
D3单元格的公式:
=HLOOKUP(B3,H2:J4,MATCH(C3,G3:G4)+1,0)
解释:HLOOKUP函数可以根据给定的值(比如:苹果)定位到具体的具体的列,这一列的行号需要MACTH函数来给定,注意要加1。
2、使用VLOOKUP和MATCH完成
VLOOKUP(lookup_value,table_array,col_index_num,[range_lookup])
lookup_value:要查找的值,数值、引用或文本字符串,需要在数据表第一列中进行查找的值
table_array:要查找的区域,数据表区域
col_index_num:返回数据在查找区域的第几列数,正整数
range_lookup:近似匹配/精确匹配,FALSE(0、空格或不填(但是要有','占位))/TRUE(1或不填(无逗号占位))
Lookup_value为需要在数据表第一列中进行查找的值
VLOOKUP中的H即Horizontal(水平),结合需要在数据表第一列中进行查找的值与col_index_num一起,理解这个函数为在一块区域内查找给定值,确定行,然后根据该行给定的列号返回最终查找的结果值。
先看完成结果:
D3单元格的公式:
=VLOOKUP(C3,G3:J4,MATCH(B3,H2:J2),0)
解释:VLOOKUP函数可以根据给定的值(比如:国产)定位到具体的行,这一行的列号需要MACTH函数来给定。
3、XLOOKUP函数
XLOOKUP(lookup_value, lookup_array, return_array, [if_not_found], [match_mode], [search_mode])
lookup_array:必需,要搜索的数组或区域,
return_array:必需,要返回的数组或区域
[if_not_found]:可选,如果找不到有效匹配项,则返回你if_not_found的 [if_not_found] 文本。如果未找到有效匹配项,并且缺少 [if_not_found],则#N/A。
[match_mode]:可选,指定匹配类型:
0 - 完全匹配。 如果未找到,则返回 #N/A。 这是默认选项。
-1 - 完全匹配。 如果没有找到,则返回下一个较小的项。
1 - 完全匹配。 如果没有找到,则返回下一个较大的项。
2 - 通配符匹配,其中 *, ? 和 ~ 有特殊含义。
[search_mode]:可选,指定要使用的搜索模式:
1 - 从第一项开始执行搜索。 这是默认选项。
-1 - 从最后一项开始执行反向搜索。
2 - 执行依赖于 lookup_array 按升序排序的二进制搜索。 如果未排序,将返回无效结果。
2 - 执行依赖于 lookup_array 按降序排序的二进制搜索。 如果未排序,将返回无效结果。
这个函数与HLOOKUP有些类似,它是在所搜的数组或者区域中查找给定值,如果找到了,就给出在给定返回的数组或者区域中的前面找到的索引对应的值。
举例: