[Excel小課堂] LOOKUP三兄弟,你都了解些啥?
LOOKUP家族就三兄弟,LOOKUP,VLOOKUP和HLOOKUP,其中最最常用的就是VLOOKUP。在面試時候如果有問到你excel的水平或者有Excel上機測試的時候,VLOOKUP是絕對絕對繞不過去的考點,還可能是唯一一個被問到的函數。
1. LOOKUP
LOOKUP函數用來從單行或單列或從數組中查找一個值,在excel幫助的官方文檔中,官方強烈建議在數組形式下使用VLOOKUP或者HLOOKUP,而在向量形式下可以使用LOOKUP(單行區域或單列區域被稱為「向量」)。不過在我看來,VLOOKUP和HLOOKUP也完全可以做到LOOKUP在向量形式下的一切功能,所以在這裡我就直接進入VLOOKUP吧。
2. VLOOKUP
學習函數,可能每個人方法不同,但是函數的作用和語法結構是繞不開的第一步。
2.1 VLOOKUP作用:
VLOOKUP是一個查找和引用的函數,作用是按列查找,最終返回該列所需查詢列序所對應的值。再說得仔細點,搜索表區域首列滿足條件的元素,確定待檢索單元格在區域中的行序號,再進一步返回選定單元格的值。這裡要特彆強調一點,如果你的搜索表區域內有不止一個和查找的值相同的數據,那麼VLOOKUP只會找到第一個對應的數據的。
2.2 VLOOKUP語法結構
VLOOKUP (lookup_value, table_array, col_index_num, [range_lookup])
lookup_value(必需參數):要查找的值。要查找的值必須位於table_array 中指定的單元格區域的第一列中。
Table_array(必需參數):VLOOKUP 在其中搜索 lookup_value 和返回值的單元格區域。
col_index_num(必需參數):其中包含返回值的單元格的編號(table-array 最左側單元格為 1 開始編號)。在這裡說下,當你把這個參數放為1的時候,VLOOKUP就是LOOKUP了,這也是為啥我不講LOOKUP的原因。
range_lookup (可選參數):一個邏輯值,指定希望 VLOOKUP 查找精確匹配值還是近似匹配值。TRUE或者1,代表近似匹配,FALSE或者0代表精確匹配。通常情況下我們用的是精確匹配,但是模糊匹配也有它適用的地方。
2.3 VLOOKUP精確匹配應用實例
因為精確匹配更為常用,所以先來個精確匹配的實例。為了演示的方便所以源數據量很小,有的人覺得肉眼看比公式快多了,但是如果數據源是上千行,查找的內容有幾十個的情況下,函數的便捷性就很明顯了。
我們來分解一下這個函數公式,先再來看一下函數的語法結構:VLOOKUP (lookup_value, table_array, col_index_num, [range_lookup])
我們要查找的是汪梅的原始分數。lookup_value就是汪梅。為了公式的通用性,lookup_value請盡量不要直接放值,而是對單元格進行引用。
table_array是VLOOKUP搜索的範圍,lookup_value一定要在你選擇範圍的第一列。雖然源數據的範圍是$B$6:$F$10,但是我們查找的內容汪梅是C列的姓名,因此table_array是$C$6:$F$10。加上$是絕對引用,這樣在雙擊填充,複製等各種情況下,引用的單元格不會同時發生偏移,保證源數據區域的完整性。偷懶點不想絕對引用的,就直接從C列到F列,C:F,一勞永逸。
col_index_num是需要返回的值對應查找值向右偏移的量,從查找的列開始計算,姓名1,性別2,來源3,原始分4,偏移4列。
這裡我們需要精確查找,所以[range_lookup]為0。
2.4 VLOOKUP精確匹配使用通配符應用實例
還有一個小技巧是使用通配符查找,以例子講解。下例中,查找公司名稱時候,可能數據源是公司全稱,而有的不是。如果不使用通配符,就很可能出現源數據中其實有,但是精確匹配就找不到的情況。例子中使用了通配符*(星號),可以看到圖中查找的值,是G3&"*"而不是G3,*作為通配符,可以代表任意數量的字元,就解決了上述問題。
2.5 VLOOKUP模糊匹配應用實例
模糊匹配雖然使用的少,但是也有它自身的適用範圍,在給學生的成績打ABCDEF,或者年齡分段,或者銷售員的提成百分比這些情況下,就特別適合使用模糊匹配。
下例是一個計算銷售人員提成的例子。銷售人員的提成比例不是固定的,而是和該銷售人員銷售金額(F列)有關,當你賣出去的金額越高,提成的比例也就越高。銷售金額在2百萬以下,提成比例就只有5%,如果銷售金額超過了2百萬但是不到4百萬,提成比例就是10%,以此類推。這個需求顯然就無法使用精確查找了,模糊查找就可以達到效果。
公式語法完全和上面一致,不再重複了,唯一的不一樣就是[range_lookup]應該是TRUE或者1,作為模糊查找。
模糊查找需要注意的是,源數據一定是要進行升序排列的,如果降序排列,恭喜你,你就會得到一大堆的報錯了。
2.6 VLOOKUP的報錯
這裡只說一個最最最容易得到的報錯,#N/A。#N/A的報錯原因是公式無法找到引用的值。像上面精確查找的時候,如果你將名字改成韓梅梅,在源數據中沒有這個人,Excel就會果斷丟給你一個#N/A。
因為這個#N/A的存在,所以VLOOKUP函數不光會被用於上面舉例的這種列偏移的查找,還會更更普遍的被用於兩個數據表之間的數據的互相對比,如果你用A表的數據作為查找值,用B表作為查找範圍,那麼出現#N/A的就說明該數據在A表中有B表中沒有。
但是,當你不是在數據對比的時候,而是列偏移填數據的時候,#N/A就非常非常之礙眼了,很多時候我們會希望找不到就顯示為0。所以這裡穿插介紹一個小小的函數iferror。因為不是該篇主角,就介紹個語法:IFERROR(value, value_if_error)還有下圖無敵簡單的實例。就醬紫。
還有一種不能算報錯的情況如下,公式都對啊,可是怎麼不顯示結果?
這時候請大家看一下自己的單元格格式是不是設置成了文本?
把文本改為常規,之後再在單元格的公式行里回個車,就會看到自己要的結果啦。
3. HLOOKUP
HLOOKUP和VLOOKUP是絕對的親兄弟or親姐妹,語法結構也基本是一模一樣的。唯一的區別只是,列偏移還是行偏移。
語法結構:
HLOOKUP(lookup_value, table_array, row_index_num, [range_lookup])
應用實例:
通常來說,這種源數據為大家所不喜,因此建議先使用特殊粘貼的方式把數據轉置再用VLOOKUP。源數據的質量排列在excel數據中真的是怎麼強調都不為過。
本文來源KeepLearn,作者Vicky_Mel,版權歸原作者所有。財會學堂整理髮布。
每天學點財會知識,讓你的職場up起來!歡迎關注微信號財會學堂(caikuaixuetang)
推薦閱讀:
※微課堂 | 視頻教學:第七課 摟膝拗步
※道法課堂|「冤親債主」
※【微課堂】第四期第4小節
※高效課堂的101個細節
※《陳涉世家》課堂實錄