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