查找和引用函數(shù)HLOOKUP和VLOOKUP

hlookup函數(shù)在excel中雖然不如vlookup函數(shù)常用,但是同樣具備很多的實(shí)用性,掌握它便于工作中查找引用所需信息,具體用法詳見下文展示hlookup函數(shù)的使用方法及實(shí)例

語法解釋:

hlookup(lookup_value,table_array,row_index_number,[range_lookup])

lookup_value表示要查找引用的數(shù)據(jù)

table_array表示查找引用的區(qū)域

row_index_number表示上面區(qū)域中的行號

range_lookup表示查找引用的類型,可以是0表示精確匹配,1表示近似匹配。

用這個成績表進(jìn)行函數(shù)應(yīng)用。


在C5單元格輸入=HLOOKUP(B5,$A$1:$F$2,2,0),其表示在A1:F2的區(qū)域的第2行精確匹配查找B5對應(yīng)的值。

回車后結(jié)果出現(xiàn)


下拉以后求出相應(yīng)的結(jié)果。


同樣通過直接點(diǎn)擊公式菜單欄中的查找引用公式,選擇hlookup函數(shù)。


各對話框中輸入如同前面公式中的參數(shù),


點(diǎn)擊確定,結(jié)果一樣,OK。


注意:hlookup函數(shù)則是查找引用行,vlookup函數(shù)是查找引用列,請大家分清掌握。下面是對VLOOKUP函數(shù)的介紹說明。

語法:VLOOKUP(lookup_value,table_array,col_index_num,range_lookup)

Lookup_value為需要在數(shù)據(jù)表第一列中進(jìn)行查找的數(shù)值。Lookup_value 可以為數(shù)值、引用或文本字符串。當(dāng)vlookup函數(shù)第一參數(shù)省略查找值時,表示用0查找。

Table_array為需要在其中查找數(shù)據(jù)的數(shù)據(jù)表。使用對區(qū)域或區(qū)域名稱的引用。

col_index_num為table_array?中查找數(shù)據(jù)的數(shù)據(jù)列序號。col_index_num 為 1 時,返回 table_array 第一列的數(shù)值,col_index_num 為 2 時,返回 table_array 第二列的數(shù)值,以此類推。如果 col_index_num 小于1,函數(shù) VLOOKUP 返回錯誤值#VALUE!;如果 col_index_num 大于 table_array 的列數(shù),函數(shù) VLOOKUP 返回錯誤值#REF!。

Range_lookup為一邏輯值,指明函數(shù) VLOOKUP 查找時是精確匹配,還是近似匹配。如果為FALSE或0,則返回精確匹配,如果找不到,則返回錯誤值 #N/A。如果?range_lookup 為TRUE或1,函數(shù) VLOOKUP 將查找近似匹配值,也就是說,如果找不到精確匹配值,則返回小于 lookup_value?的最大數(shù)值。應(yīng)注意VLOOKUP函數(shù)在進(jìn)行近似匹配時的查找規(guī)則是從第一個數(shù)據(jù)開始匹配,沒有匹配到一樣的值就繼續(xù)與下一個值進(jìn)行匹配,直到遇到大于查找值的值,此時返回上一個數(shù)據(jù)(近似匹配時應(yīng)對查找值所在列進(jìn)行升序排列)。如果range_lookup 省略,則默認(rèn)為1。

VLOOKUP函數(shù)使用注意事項(xiàng)

一.VLOOKUP的語法

1.括號里有四個參數(shù),是必需的。最后一個參數(shù)range_lookup是個邏輯值,我們常常輸入一個0字,或者False;其實(shí)也可以輸入一個1字,或者true。兩者有什么區(qū)別呢?前者表示的是完整尋找,找不到就傳回錯誤值#N/A;后者先是找一模一樣的,找不到再去找很接近的值,還找不到也只好傳回錯誤值#N/A。

2.Lookup_value是一個很重要的參數(shù),它可以是數(shù)值、文字字符串、或參照地址。我們常常用的是參照地址。用這個參數(shù)時,有三點(diǎn)要特別提醒:

A)參照地址的單元格格式類別與去搜尋的單元格格式的類別要一致,否則的話有時明明看到有資料,就是抓不過來。特別是參照地址的值是數(shù)字時,最為明顯,若搜尋的單元格格式類別為文本格式,雖然看起來都是123,但是就是抓不出東西來的。

而且格式類別在未輸入數(shù)據(jù)時就要先確定好,如果數(shù)據(jù)都輸入進(jìn)去了,發(fā)現(xiàn)格式不符,已為時已晚,若還想去抓,則需重新輸入。

B)在使用參照地址時,有時需要將lookup_value的值固定在一個格子內(nèi),而又要使用下拉方式(或復(fù)制)將函數(shù)添加到新的單元格中去,這里就要用到“$”這個符號了,這是一個起固定作用的符號。比如說我始終想以D5格式來抓數(shù)據(jù),則可以把D5弄成這樣:$D$5,則不論你如何拉、復(fù)制,函數(shù)始終都會以D5的值來抓數(shù)據(jù)。

C) 用“&" 連接若干個單元格的內(nèi)容作為查找的參數(shù)。在查找的數(shù)據(jù)有類似的情況下可以做到事半功倍。

3.Table_array是搜尋的范圍,col_index_num是范圍內(nèi)的欄數(shù)。Col_index_num 不能小于1,其實(shí)等于1也沒有什么實(shí)際用的。如果出現(xiàn)一個這樣的錯誤的值#REF!,則可能是col_index_num的值超過范圍的總字段數(shù)。選取Table_array時一定注意選擇區(qū)域的首列必須與lookup_value所選取的列的格式和字段一致。比如lookup_value選取了“姓名”中的“張三”,那么Table_array選取時第一列必須為“姓名”列,且格式與lookup_value一致,否則便會出現(xiàn)#N/A的問題。

4.在使用該函數(shù)時,lookup_value的值必須在table_array中處于第一列。

5.使用該函數(shù)時,返回的是目標(biāo)區(qū)域第一個符合查找值的數(shù)值。也就是說在目標(biāo)區(qū)域存在多個目標(biāo)值時,則應(yīng)特別注意。

二.VLOOKUP的錯誤值處理。

如果找不到數(shù)據(jù),函數(shù)總會傳回一個這樣的錯誤值#N/A,這錯誤值其實(shí)也很有用的。

例如,如果我們想這樣來作處理:如果找到的話,就傳回相應(yīng)的值,如果找不到的話,就自動設(shè)定它的值等于0,則函數(shù)可以寫成這樣:

=if(iserror(vlookup(1,2,3,0)),0,vlookup(1,2,3,0))

在Excel 2007以上版本中,以上公式等價于

=IFERROR(vlookup(1,2,3,0),0)

這句話的意思是:如果VLOOKUP函數(shù)返回的值是個錯誤值的話(找不到數(shù)據(jù)),就等于0,否則,就等于VLOOKUP函數(shù)返回的值(即找到的相應(yīng)的值)。

這里又用了兩個函數(shù)。

第一個是iserror函數(shù)。它的語法是iserror(value),即判斷括號內(nèi)的值是否為錯誤值,如果是,就等于true,不是,就等于false。

第二個是if函數(shù),這也是一個常用的函數(shù)的,后面有機(jī)會再跟大家詳細(xì)講解。它的語法是if(條件判斷式,結(jié)果1,結(jié)果2)。如果條件判斷式是對的,就執(zhí)行結(jié)果1,否則就執(zhí)行結(jié)果2。舉個例子:=if(D2=””,”空的”,”有東西”),意思是如D2這個格子里是空的值,就顯示文字“空的”,否則,就顯示“有東西”。(看起來簡單吧?其實(shí)編程序,也就是這樣子判斷來判斷去的。)

在Excel 2007以上版本中,可以使用iferror(value, value_if_error)代替以上兩個函數(shù)的組合,該函數(shù)判斷value表達(dá)式是否為錯誤值,如果是,則返回value_if_error,如果不是,則返回value表達(dá)式自身的值。

三.含有VLOOKUP函數(shù)的工作表檔案的處理。

一般來說,含有VLOOKUP函數(shù)的工作表,如果又是在別的檔案里抓取數(shù)據(jù)的話,檔案往往是比較大的,尤其是當(dāng)你使用的檔案本身就很大的時候,那每次開啟和存盤都是很受傷的事情。

有沒有辦法把文件壓縮一下,加快開啟和存盤的速度呢?這里提供一個小小的經(jīng)驗(yàn)。

在工作表里,點(diǎn)擊工具──選項(xiàng)──計(jì)算,把上面的更新遠(yuǎn)程參照和儲存外部連結(jié)的勾去掉,再保存檔案,則會加速不少,不信你可以試試。

下面詳細(xì)的說一下它的原理。

1.含有VLOOKUP函數(shù)的工作表,每次在保存檔案時,會同時保存一份其外部連結(jié)的檔案。這樣即使在單獨(dú)打開這個工作表時,VLOOKUP函數(shù)一樣可以抓取到數(shù)值。

2.在工作表打開時,微軟會提示你,是否要更新遠(yuǎn)程參照。意思是說,你要不要連接最新的外部檔案,好讓你的VLOOKUP函數(shù)抓到最新的值。如果你有足夠的耐心,不妨試試。

3.了解到這點(diǎn),我們應(yīng)該知道,每次單獨(dú)打開含有VLOOKUP函數(shù)的工作表時,里面抓取外部檔案的數(shù)值,只是上次我們存盤時保存的值。若要連結(jié)最新的值,必須要把外部檔案同時打開。

Vlookup最容易出錯的地方是查找區(qū)域的首列必須含有查找的內(nèi)容。?比方說一個表,a列是序號,b列是姓名,c列是身份證,你在d列輸入其中的一個姓名,在e1得到其身份證的公式不能是=vlookup(d1,a:c,3,0),而應(yīng)是=vlookup(d1,b:c,2,0)。

vlookup函數(shù)應(yīng)用實(shí)例:

問題:如下圖,已知表sheet1中的數(shù)據(jù)如下,如何在數(shù)據(jù)表二 sheet2 中如下引用:當(dāng)學(xué)號隨機(jī)出現(xiàn)的時候,如何在B列顯示其對應(yīng)的物理成績?


根據(jù)問題的需求,這個公式應(yīng)該是:=vlookup(a2,sheet1!$a$2:$f$100,6,true)

詳細(xì)說明一下在此vlookup函數(shù)例子中各個參數(shù)的使用說明:

第一,vlookup是垂直方向的判斷,如果是水平方向的判斷可使用Hlookup函數(shù)

第二,a2 是判斷的條件,也就是說如果sheet2表中a列對應(yīng)的數(shù)據(jù)和sheet1表中的數(shù)據(jù)相同方能引用;

第三,sheet1!$a$2:$f$100 是數(shù)據(jù)跟蹤的區(qū)域,因?yàn)樾枰玫臄?shù)據(jù)在f列,所以跟蹤的區(qū)域至少在f列,$是絕對引用。

第四,6 這是返回什么數(shù)的列數(shù),如上圖的物理是第6列,所以應(yīng)該是6,如果要求英語的數(shù)值,那么此處應(yīng)該是5。

第五,是否絕對引用,如果是就輸入 true 如果是近似即可滿足條件,那么輸入false (近似值主要用于帶小數(shù)點(diǎn)的財務(wù)、運(yùn)算等)。

結(jié)果如下圖:


?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容