236 | MATCH函數的語法及使用實例 |
MATCH函數 函數類型:查閱與參照 |
說 明: 傳回指定值在陣列中的位置,如果在陣列中沒有找到該值則傳回#N/A。其結果可以被其他函數使用,例如INDEX函數或VLOOKUP函數陣列可以已經排序或沒有排序,並且MATCH函數不區分大小寫。。 語 法: MATCH(Lookup_value,Lookup_array,[Match_type]) 參 數: Lookup_value可以是文字、數值或邏輯值。 說 明: 本函數可以在未經排序的列表中找到資料項目的位置;和CHOOSE一起使用獲取學生成績;和VLOOKUP一起使用來靈活選擇列;和INDEX一起使用來顯示獲勝者的姓名 陷 阱: 本函數傳回所查找項的位置,而不是值。如果需要獲取值,那麼與其他函數,如INDEX一起使用。 |
範例1:在未排序的列表中查找資料項目
對於未排序的列表,可以使用0作為Match_type參數,以查找完全匹配的值。如果查找文字並使用0作為參數,那麼也可以在查找值中包括萬用字元。
本例中,可以輸入月份名稱或帶有萬用字元的部分名字,查找清單中該月份的位置。
在D2儲存格輸入公式:「=MATCH(D2,B3:B7,0)」。
可以輸入陣列作為lookup_array參數來代替陣列參照。在下圖中的公式中,C2儲存格中輸入要查找的月份名稱,在MATCH函數的第二個參數中輸入12個月份名稱。如果在D3儲存格中輸入的最後一個月份名稱,如果C2儲存格輸入的字串不在其中,那麼D3儲存格的結果將是#N/A。
範例2: 將學生成績修改為字母
在本範例中,與CHOOSE函數一起來獲取字母成績。Match_type是-1,因為成績以資料遞減排列。
當參數Match_type是-1時,結果為大於或等於查找值的最小值。本例中,查找值是56,不在成績列表中,因此傳回60所在的位置。因為60在成績列表中的位置是5,所以在CHOOSE函數選項中的第5個值是結果,即儲存格B7,其值為己。
E2儲存格公式為:「=CHOOSE(MATCH(B9,B3:B7,-1),C3,C4,C5,C6,C7)」。
範例3: 在VLOOKUP函數中創建靈活的列選擇
要使含有VLOOKUP函數公式更靈活,可以使用MATCH函數來查找列號,而不是在公式中硬編碼。在本範例中,可以在儲存格G1中選擇範圍,作為VLOOKUP函數的值。然後,可以在儲存格G2中選擇月份,MATCH函數會傳回該月份所在的列。
G3儲存格公式為:「=VLOOKUP(G1,$A$2:$D$5,MATCH(G2,$A$1:$E$1,0),FALSE)」。
範例4:與INDEX函數一起查找最接近的匹配項目
MATCH函數也可以和INDEX函數一起使用。本範例中,MATCH函數用於查找最接近正確數值的猜測。
1.ABS函數傳回每項猜測和正確數值的絕對差。
2.MIN函數查找最小的差值。
3.MATCH函數在差值清單中查找最小的差值。如果有多個相同的值,那麼傳回第一個值。
4.INDEX函數傳回名字清單中該位置的名字。
E5儲存格公式輸入:「=INDEX(A2:A7,MATCH(MIN(ABS(B2:B7-D2)),ABS(B2:B7-D2),0))」後,再按 ALT+ SHIFT + ENTER鍵,將其變為陣列公式。
留言列表