潘志剛 馬睿
遼寧廣播電視大學(沈陽 110034)
作為學校的考務工作者,在考試成績發布后還有一個查分工作,迎接對試卷成績有疑義的單位前來查閱試卷。
有時我們會碰到這樣的問題,在一張Excel表中顯示學生信息,如圖1所示:

圖1 學生信息表
想要查閱某個人的試卷,就要提前知道那個人所考科目的試卷保密號,這樣才能在堆積成山的試卷中快速查找到我們需要的試卷。試卷保密號被保存在“試卷保密號總表”中,如圖2所示:

圖2 試卷保密號總表
這個“試卷保密號總表”十分龐大,有幾萬條數據,如果“學生信息表”中的數據條數少,還可以用搜索指令來查找對應的試卷保密號,如果“學生信息表”的數據也很多,應該如何快速得到試卷保密號呢?我們可以使用Vlookup函數來實現。
VLOOKUP函數,它跟HLOOKUP函數和LOOKUP函數同屬于一類函數,是一個縱向查找函數。HLOOKUP在工作中是按行查找的,而VLOOKUP按列查找,最終返回該列所需查詢列序所對應的值,
VLOOKUP(lookup_value,table_array,col_index_nu m,range_lookup)
(1)col_index_num:表示的是在table_array中待返回匹配值的列序號。col_index_num顯示的數值若為x,指明的是應返回table_array第x列的值。若col_index_num小于1,則函數 VLOOKUP返回#VALUE!錯誤值;若 col_index_num顯示數值大于table_array的列數,則函數 VLOOKUP返回#REF!錯誤值。
(2)Table_array:可理解為要查找的區域所在的表,內容為對區域(區域名稱)進行的引用。
(3)Lookup_value:類型既可以是文本字符串,也可以是數值或者引用,它表示的是需在數據表的第一列進行查找的數值。
(4)Range_lookup:為邏輯值,鍵入true或者不鍵入任何內容 ,表示返回近似匹配值,意思是說,如果不能找到精確匹配值,就返回小于 lookup_value的最大數值;如果 range_lookup為 false或0,函數VLOOKUP查找的是精確匹配值,如果找不到,則返回#N/A錯誤值。
利用以上這些基礎知識我們就可以解決文章開頭引言里的問題。
我們要做的是在“學生信息表”中的保密號一列輸入某種函數,結合一定的條件去“試卷保密號總表”找尋結果。
具體來說,想要找到某個學生考某科的試卷保密號,我們需要知道這個學生的學號和試卷代碼,這樣的話在兩張表里都要新生成一列“學號+試卷代碼”,詳見圖3中F列:

圖3 設置“學號+試卷代碼”列后狀態
同理,在“保密號總表”中也生成“學號+試卷代碼”列,并將其移動到第一列,原因是此函數在使用時,查找范圍中必須把要查找的關鍵字放于首列,操作后的狀態見圖4:

圖4 設置后的狀態
接下來,到了本文的核心內容,使用VLOOKUP函數來查找試卷保密號,依照第2節中的公式,應該是這樣一種邏輯:VLOOKUP(學號+試卷代碼,要查找的范圍,返回數據在區域的第幾列數,模糊匹配)。
其中,“學號+試卷代碼”就是我們新生成的列,要查找的范圍是“保密號總表”中的內容,要返回的數據是試卷保密號,它在第8列,模糊匹配我們要求精確匹配,所以選用FALSE。詳細內容見圖5中E2單元格:

圖5 公式使用
至此,我們要實現的功能完全實現了,試卷保密號可以被迅速查找到。
VLOOKUP函數的完整語法是這樣的:
VLOOKUP(lookup_value,table_array,col_index_nu m,range_lookup)
各參數的使用上有以下幾點需要注意:
(1)Lookup_value是個重要參數,常用到的為參照地址,可為數值或文字字符串。
(2)range_lookup是邏輯值,我們一般輸入0字或False,也可輸入1字或true。前者的指完整尋找,找不到返回錯誤值#N/A;后者指先找一模一樣的,找不到再去找接近的值,兩者都找不到返回錯誤值#N/A。
(3)在使用該函數時,lookup_value的值在table_array中必須在第一列的位置。換句話說,要搜尋的關鍵詞必須出現在要搜尋范圍的第一列。
(4)Table_array所表明的是搜尋范圍,col_index_num是范圍內的欄數。Col_index_num 必須大于等于1,等于1的情況極少用到。如果出現錯誤值#REF!,則可能是col_index_num的值超過范圍的總字段數。
在使用Lookup_value參數時的有三點注意事項:
①在使用參照地址時,有時要將lookup_value的值固定在一個格內,這里要用到“$”符號來固定,不會影響使用下拉方式(或復制)將函數添加到新的單元格中去。舉例來說,若始終想以D8的格式抓取數據,可以在D8中這樣鍵入:$D$8,這樣,你進行下拉、復制操作,函數始終會以D8的值來抓取數據。
②參照地址的單元格格式類別與要搜尋的單元格格式類別必須一致,否則即使有數據也會找不到。舉例來說,當參照地址的值是數字,而我們要搜尋的單元格格式類別為文字時,看起來雖然是一樣的數據,但是就是抓不出來。
③用“&"連接若干個單元格的內容作為查找的參數。在查找多個關鍵字的情況下可以起到事半功倍的效果。
在找不到數據時函數會傳回錯誤值#N/A,舉例來說,如果要實現這樣的功能:若找到,傳回相應的值,找不到就自動設定它的值等于0,函數如下:=if(iserror(vlookup(1,2,3,0)),0,vlookup(1,2,3,0))
在Excel 2007以上的版本中,這個公式等價于:=IFERROR(vlookup(1,2,3,0),0)。
從Excel在工作中的實例出發,詳細地介紹了VLOOKUP函數使用方法及注意事項,具有較較強的針對性和指導性。在使用Excel工作時,讀者應該靈活對待遇到的問題,有一些問題一時可能想不到用什么函數解決,應該即時轉換思考角度,總能找到適合的函數解決待解問題。
[1]百度百科.VLOOKUP 函數[EB/OL].http://baike.baidu.com/view/3170068.htm.