1、match返回查找值位置:
match(lookup_value, lookup_array, match_type)
Match(目标值,查找区域,0/1/-1)
使用注意:返回值是基于选择区域的行数,跟查找到的单元格所处的行无关
2、hlookup横向匹配:
hlookup(lookup_value,table_array,row_index_num,range_lookup)
hlookup(在数据表第一行中查找的值,查找的范围,返回的值在查找范围的第几行,模糊匹配/精确匹配)
FALSE(0)省略为精确匹配。
TRUE(1)为近似匹配。
使用注意:row_index_num的值不能大于选择区域列数;查找值会从左至右检索查找范围第一行满足查找条件的第一个值,然后锁定返回值的列号,再通过第三个条件的行号达到返回指定单元格的功能。
3、vlookup纵向匹配:
vlookup(lookup_value,table_array,row_index_column,range_lookup)
vlookup(需要查询的值,查找的范围,返回的值在查找范围的第几列,模糊匹配/精确匹配)
FALSE(0)省略为精确匹配。
TRUE(1)为近似匹配。
案例展示:
以上函数可优化技巧,使其可以正确向右或向下填充函数,无需人工更改相对引用和绝对引用:
=HLOOKUP(INDEX($G$29:$H$29,1,COLUMN(A1)),$A$29:$C$34,MATCH(INDEX($F$30:$F$34,ROW(A1),1),$A$29:$A$34,0),FALSE)
运用Index函数特性:返回选择区域第n行第m列的值,以及hlookup和match函数条件的特点,在此例子中,hlookup的条件是行不变,列变;match的条件是行变,列不变。因此可以根据上诉分析可以编辑相应的index查找函数,返回需要的值。
注意:match返回的是查询值处于查找范围的列数的值,最终hlookup返回行的值与hlookup查询区域的第几行有关。
特殊思路:假如表1和表2表头转置,表2变成姓名值在行成绩的值,处理方式只需要改变hlookup和match条件选择,以姓名为hlookup的条件找返回值所处的列,以课程名称为match的条件找返回值所处的行即可。