hlookup函數(shù)在excel中雖然不如vlookup函數(shù)常用,但是同樣具備很多的實用性湾宙,掌握它便于工作中查找引用所需信息幕庐,具體用法詳見下文展示hlookup函數(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é)果霎槐。
同樣通過直接點擊公式菜單欄中的查找引用公式送浊,選擇hlookup函數(shù)。
各對話框中輸入如同前面公式中的參數(shù)栽燕,
點擊確定罕袋,結(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ù)使用注意事項
一.VLOOKUP的語法
1.括號里有四個參數(shù),是必需的哈垢。最后一個參數(shù)range_lookup是個邏輯值妻柒,我們常常輸入一個0字,或者False;其實也可以輸入一個1字耘分,或者true举塔。兩者有什么區(qū)別呢?前者表示的是完整尋找求泰,找不到就傳回錯誤值#N/A央渣;后者先是找一模一樣的,找不到再去找很接近的值渴频,還找不到也只好傳回錯誤值#N/A芽丹。
2.Lookup_value是一個很重要的參數(shù),它可以是數(shù)值枉氮、文字字符串志衍、或參照地址。我們常常用的是參照地址聊替。用這個參數(shù)時楼肪,有三點要特別提醒:
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渤滞,其實等于1也沒有什么實際用的贬墩。如果出現(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,這錯誤值其實也很有用的羔味。
例如河咽,如果我們想這樣來作處理:如果找到的話,就傳回相應(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這個格子里是空的值反浓,就顯示文字“空的”,否則赞哗,就顯示“有東西”雷则。(看起來簡單吧?其實編程序肪笋,也就是這樣子判斷來判斷去的巧婶。)
在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)驗。
在工作表里俐载,點擊工具──選項──計算蟹略,把上面的更新遠(yuǎn)程參照和儲存外部連結(jié)的勾去掉,再保存檔案遏佣,則會加速不少挖炬,不信你可以試試。
下面詳細(xì)的說一下它的原理状婶。
1.含有VLOOKUP函數(shù)的工作表意敛,每次在保存檔案時,會同時保存一份其外部連結(jié)的檔案膛虫。這樣即使在單獨(dú)打開這個工作表時空闲,VLOOKUP函數(shù)一樣可以抓取到數(shù)值。
2.在工作表打開時走敌,微軟會提示你,是否要更新遠(yuǎn)程參照逗噩。意思是說掉丽,你要不要連接最新的外部檔案,好讓你的VLOOKUP函數(shù)抓到最新的值异雁。如果你有足夠的耐心捶障,不妨試試。
3.了解到這點纲刀,我們應(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)用實例:
問題:如下圖役衡,已知表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ū)域扣蜻,因為需要引用的數(shù)據(jù)在f列,所以跟蹤的區(qū)域至少在f列及塘,$是絕對引用莽使。
第四,6 這是返回什么數(shù)的列數(shù)笙僚,如上圖的物理是第6列芳肌,所以應(yīng)該是6,如果要求英語的數(shù)值肋层,那么此處應(yīng)該是5亿笤。
第五,是否絕對引用栋猖,如果是就輸入 true 如果是近似即可滿足條件净薛,那么輸入false (近似值主要用于帶小數(shù)點的財務(wù)、運(yùn)算等)蒲拉。
結(jié)果如下圖: