在介紹查詢與引用函數(shù)之前,我們先來了解一下有關引用的知識。
1、引用的作用 在Excel中引用的作用在于標識工作表上的單元格或單元格區(qū)域,并指明公式中所使用的數(shù)據(jù)的位置。通過引用,可以在公式中使用工作表不同部分的數(shù)據(jù),或者在多個公式中使用同一單元格的數(shù)值。還可以引用同一工作簿不同工作表的單元格、不同工作簿的單元格、甚至其它應用程序中的數(shù)據(jù)。 2、引用的含義 關于引用需要了解如下幾種情況的含義: 外部引用--不同工作簿中的單元格的引用稱為外部引用。 遠程引用--引用其它程序中的數(shù)據(jù)稱為遠程引用。 相對引用--在創(chuàng)建公式時,單元格或單元格區(qū)域的引用通常是相對于包含公式的單元格的相對位置。 絕對引用--如果在復制公式時不希望 Excel 調整引用,那么請使用絕對引用。即加入美元符號,如$C$1。 3、引用的表示方法 關于引用有兩種表示的方法,即A1 和 R1C1 引用樣式。 (1)引用樣式一(默認)--A1 A1的引用樣式是Excel的默認引用類型。這種類型引用字母標志列(從 A 到 IV ,共 256 列)和數(shù)字標志行(從 1 到 65536)。這些字母和數(shù)字被稱為行和列標題。如果要引用單元格,請順序輸入列字母和行數(shù)字。例如,C25 引用了列 C 和行 25 交叉處的單元格。如果要引用單元格區(qū)域,請輸入?yún)^(qū)域左上角單元格的引用、冒號(:)和區(qū)域右下角單元格的引用,如A20:C35。 (2)引用樣式二--R1C1 在 R1C1 引用樣式中,Excel 使用"R"加行數(shù)字和"C"加列數(shù)字來指示單元格的位置。例如,單元格絕對引用 R1C1 與 A1 引用樣式中的絕對引用 $A$1 等價。如果活動單元格是 A1,則單元格相對引用 R[1]C[1] 將引用下面一行和右邊一列的單元格,或是 B2。 在了解了引用的概念后,我們來看看Excel提供的查詢與引用函數(shù)。查詢與引用函數(shù)可以用來在數(shù)據(jù)清單或表格中查找特定數(shù)值,或者需要查找某一單元格的引用。Excel中一共提供了ADDRESS、AREAS、CHOOSE、COLUMN、COLUMNS、HLOOKUP、HYPERLINK、INDEX、INDIRECT、LOOKUP、MATCH、OFFSET、ROW、ROWS、TRANSPOSE、VLOOKUP 16個查詢與引用函數(shù)。下面,筆者將分組介紹一下這些函數(shù)的使用方法及簡單應用。 一、ADDRESS、COLUMN、ROW 1、 ADDRESS用于按照給定的行號和列標,建立文本類型的單元格地址。 其語法形式為:ADDRESS(row_num,column_num,abs_num,a1,sheet_text) Row_num指在單元格引用中使用的行號。 Column_num指在單元格引用中使用的列標。 Abs_num 指明返回的引用類型,1代表絕對引用,2代表絕對行號,相對列標,3代表相對行號,絕對列標,4為相對引用。 A1用以指明 A1 或 R1C1 引用樣式的邏輯值。如果 A1 為 TRUE 或省略,函數(shù) ADDRESS 返回 A1 樣式的引用;如果 A1 為 FALSE,函數(shù) ADDRESS 返回 R1C1 樣式的引用。 Sheet_text為一文本,指明作為外部引用的工作表的名稱,如果省略 sheet_text,則不使用任何工作表名。 簡單說,即ADDRESS(行號,列標,引用類型,引用樣式,工作表名稱) 比如,ADDRESS(4,5,1,FALSE,"[Book1]Sheet1") 等于 "[Book1]Sheet1!R4C5"參見圖1 語法形式為:COLUMN(reference) Reference為需要得到其列標的單元格或單元格區(qū)域。如果省略 reference,則假定為是對函數(shù) COLUMN 所在單元格的引用。如果 reference 為一個單元格區(qū)域,并且函數(shù) COLUMN 作為水平數(shù)組輸入,則函數(shù) COLUMN 將 reference 中的列標以水平數(shù)組的形式返回。但是Reference 不能引用多個區(qū)域。 3、 ROW用于返回給定引用的行號。 語法形式為:ROW(reference) Reference為需要得到其行號的單元格或單元格區(qū)域。 如果省略 reference,則假定是對函數(shù) ROW 所在單元格的引用。如果 reference 為一個單元格區(qū)域,并且函數(shù) ROW 作為垂直數(shù)組輸入,則函數(shù) ROW 將 reference 的行號以垂直數(shù)組的形式返回。但是Reference 不能對多個區(qū)域進行引用。 二、AREAS、COLUMNS、INDEX、ROWS 1、 AREAS用于返回引用中包含的區(qū)域個數(shù)。其中區(qū)域表示連續(xù)的單元格組或某個單元格。 其語法形式為AREAS(reference) Reference為對某一單元格或單元格區(qū)域的引用,也可以引用多個區(qū)域。如果需要將幾個引用指定為一個參數(shù),則必須用括號括起來。 2、 COLUMNS用于返回數(shù)組或引用的列數(shù)。 其語法形式為COLUMNS(array) Array為需要得到其列數(shù)的數(shù)組、數(shù)組公式或對單元格區(qū)域的引用。 3、 ROWS用于返回引用或數(shù)組的行數(shù)。 其語法形式為ROWS(array) Array為需要得到其行數(shù)的數(shù)組、數(shù)組公式或對單元格區(qū)域的引用。 以上各函數(shù)示例見圖2 函數(shù) INDEX() 有兩種形式:數(shù)組和引用。數(shù)組形式通常返回數(shù)值或數(shù)值數(shù)組;引用形式通常返回引用。 (1)INDEX(array,row_num,column_num) 返回數(shù)組中指定單元格或單元格數(shù)組的數(shù)值。 Array為單元格區(qū)域或數(shù)組常數(shù)。Row_num為數(shù)組中某行的行序號,函數(shù)從該行返回數(shù)值。Column_num為數(shù)組中某列的列序號,函數(shù)從該列返回數(shù)值。需注意的是Row_num 和 column_num 必須指向 array 中的某一單元格,否則,函數(shù) INDEX 返回錯誤值 #REF!。 (2)INDEX(reference,row_num,column_num,area_num) 返回引用中指定單元格或單元格區(qū)域的引用。 Reference為對一個或多個單元格區(qū)域的引用。 Row_num為引用中某行的行序號,函數(shù)從該行返回一個引用。 Column_num為引用中某列的列序號,函數(shù)從該列返回一個引用。 需注意的是Row_num、column_num 和 area_num 必須指向 reference 中的單元格;否則,函數(shù) INDEX 返回錯誤值 #REF!。如果省略 row_num 和 column_num,函數(shù) INDEX 返回由 area_num 所指定的區(qū)域。 三、INDIRECT、OFFSET 1、 INDIRECT用于返回由文字串指定的引用。 當需要更改公式中單元格的引用,而不更改公式本身,使用函數(shù) INDIRECT。 其語法形式為:INDIRECT(ref_text,a1) 其中Ref_text為對單元格的引用,此單元格可以包含 A1-樣式的引用、R1C1-樣式的引用、定義為引用的名稱或對文字串單元格的引用。如果 ref_text 不是合法的單元格的引用,函數(shù) INDIRECT 返回錯誤值 #REF!。 A1為一邏輯值,指明包含在單元格 ref_text 中的引用的類型。如果 a1 為 TRUE 或省略,ref_text 被解釋為 A1-樣式的引用。如果 a1 為 FALSE,ref_text 被解釋為 R1C1-樣式的引用。 需要注意的是:如果 ref_text 是對另一個工作簿的引用(外部引用),則那個工作簿必須被打開。如果源工作簿沒有打開,函數(shù) INDIRECT 返回錯誤值 #REF!。 2、 OFFSET函數(shù)用于以指定的引用為參照系,通過給定偏移量得到新的引用。 返回的引用可以是一個單元格或者單元格區(qū)域,并可以指定返回的行數(shù)或者列數(shù)。 其基本語法形式為:OFFSET(reference, rows, cols, height, width)。 其中,reference變量作為偏移量參照系的引用區(qū)域(reference必須為對單元格或相連單元格區(qū)域的引用,否則,OFFSET函數(shù)返回錯誤值#VALUE!)。 rows變量表示相對于偏移量參照系的左上角單元格向上(向下)偏移的行數(shù)(例如rows使用2作為參數(shù),表示目標引用區(qū)域的左上角單元格比reference低2行),行數(shù)可為正數(shù)(代表在起始引用單元格的下方)或者負數(shù)(代表在起始引用單元格的上方)或者0(代表起始引用單元格)。 cols表示相對于偏移量參照系的左上角單元格向左(向右)偏移的列數(shù)(例如cols使用4作為參數(shù),表示目標引用區(qū)域的左上角單元格比reference右移4列),列數(shù)可為正數(shù)(代表在起始引用單元格的右邊)或者負數(shù)(代表在起始引用單元格的左邊)。 如果行數(shù)或者列數(shù)偏移量超出工作表邊緣,OFFSET函數(shù)將返回錯誤值#REF!。height變量表示高度,即所要返回的引用區(qū)域的行數(shù)(height必須為正數(shù))。width變量表示寬度,即所要返回的引用區(qū)域的列數(shù)(width必須為正數(shù))。如果省略height或者width,則假設其高度或者寬度與reference相同。例如,公式OFFSET(A1,2,3,4,5)表示比單元格A1靠下2行并靠右3列的4行5列的區(qū)域(即D3:H7區(qū)域)。 由此可見,OFFSET函數(shù)實際上并不移動任何單元格或者更改選定區(qū)域,它只是返回一個引用。 四、HLOOKUP、LOOKUP、MATCH、VLOOKUP 1、 LOOKUP函數(shù)與MATCH函數(shù) LOOKUP函數(shù)可以返回向量(單行區(qū)域或單列區(qū)域)或數(shù)組中的數(shù)值。此系列函數(shù)用于在表格或數(shù)值數(shù)組的首行查找指定的數(shù)值,并由此返回表格或數(shù)組當前列中指定行處的數(shù)值。當比較值位于數(shù)據(jù)表的首行,并且要查找下面給定行中的數(shù)據(jù)時,使用函數(shù) HLOOKUP。當比較值位于要進行數(shù)據(jù)查找的左邊一列時,使用函數(shù) VLOOKUP。 如果需要找出匹配元素的位置而不是匹配元素本身,則應該使用函數(shù) MATCH 而不是函數(shù) LOOKUP。MATCH函數(shù)用來返回在指定方式下與指定數(shù)值匹配的數(shù)組中元素的相應位置。從以上分析可知,查找函數(shù)的功能,一是按搜索條件,返回被搜索區(qū)域內數(shù)據(jù)的一個數(shù)據(jù)值;二是按搜索條件,返回被搜索區(qū)域內某一數(shù)據(jù)所在的位置值。利用這兩大功能,不僅能實現(xiàn)數(shù)據(jù)的查詢,而且也能解決如"定級"之類的實際問題。 2、 LOOKUP用于返回向量(單行區(qū)域或單列區(qū)域)或數(shù)組中的數(shù)值。 函數(shù) LOOKUP 有兩種語法形式:向量和數(shù)組。 (1) 向量形式 函數(shù) LOOKUP 的向量形式是在單行區(qū)域或單列區(qū)域(向量)中查找數(shù)值,然后返回第二個單行區(qū)域或單列區(qū)域中相同位置的數(shù)值。 其基本語法形式為LOOKUP(lookup_value,lookup_vector,result_vector) Lookup_value為函數(shù) LOOKUP 在第一個向量中所要查找的數(shù)值。Lookup_value 可以為數(shù)字、文本、邏輯值或包含數(shù)值的名稱或引用。 Lookup_vector為只包含一行或一列的區(qū)域。Lookup_vector 的數(shù)值可以為文本、數(shù)字或邏輯值。 需要注意的是Lookup_vector 的數(shù)值必須按升序排序:...、-2、-1、0、1、2、...、A-Z、FALSE、TRUE;否則,函數(shù) LOOKUP 不能返回正確的結果。文本不區(qū)分大小寫。 Result_vector 只包含一行或一列的區(qū)域,其大小必須與 lookup_vector 相同。 如果函數(shù) LOOKUP 找不到 lookup_value,則查找 lookup_vector 中小于或等于 lookup_value 的最大數(shù)值。 如果 lookup_value 小于 lookup_vector 中的最小值,函數(shù) LOOKUP 返回錯誤值 #N/A。 示例詳見圖3 函數(shù) LOOKUP 的數(shù)組形式在數(shù)組的第一行或第一列查找指定的數(shù)值,然后返回數(shù)組的最后一行或最后一列中相同位置的數(shù)值。通常情況下,最好使用函數(shù) HLOOKUP 或函數(shù) VLOOKUP 來替代函數(shù) LOOKUP 的數(shù)組形式。函數(shù) LOOKUP 的這種形式主要用于與其他電子表格兼容。關于LOOKUP的數(shù)組形式的用法在此不再贅述,感興趣的可以參看Excel的幫助。 3、 HLOOKUP與VLOOKUP HLOOKUP用于在表格或數(shù)值數(shù)組的首行查找指定的數(shù)值,并由此返回表格或數(shù)組當前列中指定行處的數(shù)值。 VLOOKUP用于在表格或數(shù)值數(shù)組的首列查找指定的數(shù)值,并由此返回表格或數(shù)組當前行中指定列處的數(shù)值。 當比較值位于數(shù)據(jù)表的首行,并且要查找下面給定行中的數(shù)據(jù)時,請使用函數(shù) HLOOKUP。 當比較值位于要進行數(shù)據(jù)查找的左邊一列時,請使用函數(shù) VLOOKUP。 語法形式為: HLOOKUP(lookup_value,table_array,row_index_num,range_lookup) VLOOKUP(lookup_value,table_array,col_index_num,range_lookup) 其中,Lookup_value表示要查找的值,它必須位于自定義查找區(qū)域的最左列。Lookup_value 可以為數(shù)值、引用或文字串。 Table_array查找的區(qū)域,用于查找數(shù)據(jù)的區(qū)域,上面的查找值必須位于這個區(qū)域的最左列??梢允褂脤^(qū)域或區(qū)域名稱的引用。 Row_index_num為 table_array 中待返回的匹配值的行序號。Row_index_num 為 1 時,返回 table_array 第一行的數(shù)值,row_index_num 為 2 時,返回 table_array 第二行的數(shù)值,以此類推。 Col_index_num為相對列號。最左列為1,其右邊一列為2,依此類推. Range_lookup為一邏輯值,指明函數(shù) HLOOKUP 查找時是精確匹配,還是近似匹配。 下面詳細介紹一下VLOOKUP函數(shù)的應用。 簡言之,VLOOKUP函數(shù)可以根據(jù)搜索區(qū)域內最左列的值,去查找區(qū)域內其它列的數(shù)據(jù),并返回該列的數(shù)據(jù),對于字母來說,搜索時不分大小寫。所以,函數(shù)VLOOKUP的查找可以達到兩種目的:一是精確的查找。二是近似的查找。下面分別說明。 (1) 精確查找--根據(jù)區(qū)域最左列的值,對其它列的數(shù)據(jù)進行精確的查找 示例:創(chuàng)建工資表與工資條 首先建立員工工資表 第一步,拷貝標題欄 第二步,在編號處(A21)寫入A001 第三步,在姓名(B21)創(chuàng)建公式 =VLOOKUP($A21,$A$3:$H$12,2,FALSE) 語法解釋:在$A$3:$H$12范圍內(即工資表中)精確找出與A21單元格相符的行,并將該行中第二列的內容計入單元格中。 第四步,以此類推,在隨后的單元格中寫入相應的公式。 示例:按照項目總額不同提取相應比例的獎金 第一步,建立一個項目總額與獎金比例的對照表,如圖6所示。項目總額的數(shù)字均為大于情況。即項目總額在0~5000元時,獎金比例為1%,以此類推。 =VLOOKUP(A11,$A$4:$B$8,2,TRUE) 即可求得具體的獎金比例為5%,如圖7。 MATCH函數(shù)有兩方面的功能,兩種操作都返回一個位置值。 一是確定區(qū)域中的一個值在一列中的準確位置,這種精確的查詢與列表是否排序無關。 二是確定一個給定值位于已排序列表中的位置,這不需要準確的匹配. 語法結構為:MATCH(lookup_value,lookup_array,match_type) lookup_value為要搜索的值。 lookup_array:要查找的區(qū)域(必須是一行或一列)。 match_type:匹配形式,有0、1和-1三種選擇:"0"表示一個準確的搜索。"1"表示搜索小于或等于查換值的最大值,查找區(qū)域必須為升序排列。"-1"表示搜索大于或等于查找值的最小值,查找區(qū)域必須降序排開。以上的搜索,如果沒有匹配值,則返回#N/A。 五、HYPERLINK 所謂HYPERLINK,也就是創(chuàng)建快捷方式,以打開文檔或網(wǎng)絡驅動器,甚至INTERNET地址。通俗地講,就是在某個單元格中輸入此函數(shù)之后,可以到您想去的任何位置。在某個Excel文檔中,也許您需要引用別的Excel文檔或Word文檔等等,其步驟和方法是這樣的: (1)選中您要輸入此函數(shù)的單元格,比如B6。 (2)單擊常用工具欄中的"粘貼函數(shù)"圖標,將出現(xiàn)"粘貼函數(shù)"對話框,在"函數(shù)分類"框中選擇"常用",在"函數(shù)名"框中選擇HYPERLINK,此時在對話框的底部將出現(xiàn)該函數(shù)的簡短解釋。 ?。?)單擊"確定"后將彈出HYPERLINK函數(shù)參數(shù)設置對話框。 ?。?)在"Link_location"中鍵入要鏈接的文件或INTERNET地址,比如:"c:\my documents\Excel函數(shù).doc";在"Friendly_name"中鍵入"Excel函數(shù)"(這里是假設我們要打開的文檔位于c:\my documents下的文件"Excel函數(shù).doc")。 (5)單擊"確定"回到您正編輯的Excel文檔,此時再單擊B6單元格就可立即打開用Word編輯的會議紀要文檔。 HYPERLINK函數(shù)用于創(chuàng)建各種快捷方式,比如打開文檔或網(wǎng)絡驅動器,跳轉到某個網(wǎng)址等。說得夸大一點,在某個單元格中輸入此函數(shù)之后,可以跳到我們想去的任何位置。 六、其他(CHOOSE、TRANSPOSE) 1、CHOOSE函數(shù) 函數(shù)CHOOSE可以使用 index_num 返回數(shù)值參數(shù)清單中的數(shù)值。使用函數(shù) CHOOSE 可以基于索引號返回多達 29 個待選數(shù)值中的任一數(shù)值。 語法形式為:CHOOSE(index_num,value1,value2,...) Index_num用以指明待選參數(shù)序號的參數(shù)值。Index_num 必須為 1 到 29 之間的數(shù)字、或者是包含數(shù)字 1 到 29 的公式或單元格引用。 Value1,value2,... 為 1 到 29 個數(shù)值參數(shù),函數(shù) CHOOSE 基于 index_num,從中選擇一個數(shù)值或執(zhí)行相應的操作。參數(shù)可以為數(shù)字、單元格引用,已定義的名稱、公式、函數(shù)或文本。 2、TRANSPOSE函數(shù) TRANSPOSE用于返回區(qū)域的轉置。函數(shù) TRANSPOSE 必須在某個區(qū)域中以數(shù)組公式的形式輸入,該區(qū)域的行數(shù)和列數(shù)分別與 array 的列數(shù)和行數(shù)相同。使用函數(shù) TRANSPOSE 可以改變工作表或宏表中數(shù)組的垂直或水平走向。 語法形式為TRANSPOSE(array) Array為需要進行轉置的數(shù)組或工作表中的單元格區(qū)域。所謂數(shù)組的轉置就是,將數(shù)組的第一行作為新數(shù)組的第一列,數(shù)組的第二行作為新數(shù)組的第二列,以此類推。 示例,將原來為橫向排列的業(yè)績表轉置為縱向排列。 第二步,單擊常用工具欄中的"粘貼函數(shù)"圖標,將出現(xiàn)"粘貼函數(shù)"對話框,在"函數(shù)分類"框中選擇"查找與引用函數(shù)"框中選擇TRANSPOSE,此時在對話框的底部將出現(xiàn)該函數(shù)的簡短解釋。 單擊"確定"后將彈出TRANSPOSE函數(shù)參數(shù)設置對話框。 第四步,由于此處是以數(shù)組公式輸入,因此需要按 CRTL+SHIFT+ENTER 組合鍵來確定為數(shù)組公式,此時會在公式中顯示"{}"。隨即轉置成功,如圖10所示。 |
|