1. 程式人生 > >EXCEL公式及函式的高階應用(4)

EXCEL公式及函式的高階應用(4)

 

2.1.2.7  LOOKUP函式、VLOOKUP函式和HLOOKUP函式

1LOOKUP函式

LOOKUP函式的功能是返回向量(單行區域或單列區域)或陣列中的數值。函式 LOOKUP 有兩種語法形式:向量和陣列。函式 LOOKUP 的向量形式是在單行區域或單列區域(向量)中查詢數值,然後返回第二個單行區域或單列區域中相同位置的數值;函式 LOOKUP 的陣列形式在陣列的第一行或第一列查詢指定的數值,然後返回陣列的最後一行或最後一列中相同位置的數值。

1)向量形式:公式為

= LOOKUP(lookup_value,lookup_vector,result_vector)

式中 lookup_value

—函式LOOKUP在第一個向量中所要查詢的數值,它可以為數字、文字、邏輯值或包含數值的名稱或引用;

lookup_vector—只包含一行或一列的區域lookup_vector 的數值可以為文字、數字或邏輯值;

result_vector—為只包含一行或一列的區域其大小必須與 lookup_vector 相同。

2)陣列形式:公式為

= LOOKUP(lookup_value,array)

式中 array—包含文字、數字或邏輯值的單元格區域或陣列它的值用於與 lookup_value 進行比較。

例如:LOOKUP(5.2,{4.2,5,7,9,10})=5

注意:lookup_vector

的數值必須按升序排列,否則函式LOOKUP不能返回正確的結果。文字不區分大小寫。如果函式LOOKUP找不到lookup_value,則查詢lookup_vector中小於或等於lookup_value的最大數值。如果lookup_value小於lookup_vector中的最小值,函式LOOKUP返回錯誤值#N/A

2VLOOKUP函式

VLOOKUP函式的功能是在表格或數值陣列的首列查詢指定的數值,並由此返回表格或陣列當前行中指定列處的數值。公式為

= VLOOKUPlookup_valuetable_arraycol_index_numrange_lookup

式中 lookup_value

—需要在資料表第一列中查詢的數值,lookup_value 可以為數值、引用或文字串;

table_array—需要在其中查詢資料的資料表,可以使用對區域或區域名稱的引用,例如資料庫或資料清單;

如果range_lookupTRUE,則table_array的第一列中的數值必須按升序排列,否則函式VLOOKUP不能返回正確的數值,如果range_lookupFALSEtable_array不必進行排序。table_array的第一列中的數值可以為文字、數字或邏輯值,且不區分文字的大小寫;

col_index_numtable_array中待返回的匹配值的列序號;

col_index_num1時,返回table_array第一列中的數值;col_index_num2時,返回table_array第二列中的數值,以此類推。如果col_index_num小於1,函式VLOOKUP返回錯誤值#VALUE!;如果col_index_num大於table_array的列數,函式VLOOKUP返回錯誤值#REF!

range_lookup—邏輯值,指明函式 VLOOKUP 返回時是精確匹配還是近似匹配。

如果其為TRUE或省略,則返回近似匹配值,也就是說,如果找不到精確匹配值,則返回小於lookup_value的最大數值;如果range_valueFALSE,函式VLOOKUP將返回精確匹配值。如果找不到,則返回錯誤值#N/A

VLOOKUP函式在財務管理與分析中是一個經常用到的函式,因此熟悉它將會帶來很大便利。在以後的有關章節中會經常用到它。

例如,假設單元格A1:A4中的資料分別為1308090,單元格B1:B4中的資料分別為400500600700,則有:VLOOKUP(5,A1:B4,2)=400VLOOKUP(30,A1:B4,2)=500VLOOKUP(79,A1:B4,2)=500VLOOKUP(92,A1:B4,2)=700

3HLOOKUP函式

HLOOKUP函式的功能是從表格或數值陣列的首行查詢指定的數值,並由此返回表格或陣列當前列中指定行處的數值。公式為

= (lookup_valuetable_arrayrow_index_numrange_lookup)

式中  row_index_numtable_array中待返回的匹配值的行序號。

row_index_num1時,返回table_array第一行的數值,row_index_num2時,返回table_array第二行的數值,以此類推。如果row_index_num小於1,函式HLOOKUP返回錯誤值 #VALUE!;如果row_index_num大於table_array的行數,函式HLOOKUP返回錯誤值#REF!

式中的其他引數含義參閱VLOOKUP函式。

HLOOKUP函式與VLOOKUP函式的區別是:當比較值位於資料表的首行,並且要查詢下面給定行中的資料時,使用函式HLOOKUP;當比較值位於要進行資料查詢的左邊一列時,使用函式VLOOKUPVLOOKUP函式在首列進行檢索,先得到的是行號,然後根據col_index_num引數指定的列標返回指定的單元格數值;而HLOOKUP函式在首行進行檢索,先得到的是列標,然後根據row_index_num引數指定的行號返回指定的單元格數值。

2.1.2.8  MATCH函式

MATCH函式的功能是返回在指定方式下與指定數值匹配的陣列中元素的相應位置。公式為:

= MATCH(lookup_value,lookup_array,match_type)

式中  lookup_value—需要在資料表中查詢的數值,可以是數值(數字、文字或邏輯值)或對數字、文字或邏輯值的單元格引用;

lookup_array—可能包含所要查詢的數值的連續單元格區域,可以是陣列或陣列引用;

match_type—數字-101,它指明Excel如何在lookup_array中查詢lookup_value

查詢方式如下:當match_type-1時,lookup_array必須按降序排列,函式MATCH查詢大於或等於lookup_value的最小數值;當match_type0時,lookup_array可以按任何順序排列,函式MATCH 查詢等於lookup_value的第一個數值;當match_type1時,lookup_array必須按升序排列,函式MATCH查詢小於或等於lookup_value的最大數值。

例如,MATCH(12,{23,43,12,55},0)=3MATCH(40,{23,43,12,55})=1

<SCRIPT src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type=text/javascript> </SCRIPT> <SCRIPT src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type=text/javascript> </SCRIPT>