match、vlookup、hlookup函数(结合index运用可以实现自动化填充)

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的条件找返回值所处的行即可。

红尘往事,一切随风!
原文地址:https://www.cnblogs.com/xwenwu/p/13508597.html