在Excel中,VLOOKUP函數應該是最受關注的函數之一了。關于VLOOKUP函數,在網上有數不清的討論和文章。我對其進行了一些整理,供大家進一步理解和運用VLOOKUP函數時參考。
當你想從表中提取信息時,Excel的VLOOKUP函數是一個很好的解決方案。從表中動態查找和獲取信息的能力給許多用戶帶來了全新的改變,你到處都可以發現VLOOKUP。
盡管VLOOKUP相對容易使用,但也容易出錯。其中一個原因是VLOOKUP有一個主要的設計缺陷,默認情況下,假定你認為的是近似匹配,但這可能并不是你的本意。因此,會導致看起來結果正常但實際上是錯誤的。
1.VLOOKUP是如何運行的
VLOOKUP是一個查找函數,可以獲取表中的數據。在VLOOKUP中的“V”代表垂直,意味著表中的數據必須垂直地排列,即數據在行中。
如果你有一個結構良好的表,信息垂直排列,左邊有一列可以用來匹配查找的數據,那么可以使用VLOOKUP。
VLOOKUP要求表結構化,在左側列中顯示查找值,在右側任意列中顯示想要獲取的數據(結果值)。當使用VLOOKUP時,假設表中的每列都從左側(查找列)列始編號。要從特定列中獲取值,簡單地提供合適的數字作為“列索引”即可。在下面的例子中,查找電子郵件地址,因此使用數字4作為列索引:
圖6
在單元格D5中的公式使用近似匹配獲取正確的傭金率:
=VLOOKUP(C5,$G$5:$H$10,2,TRUE)
6.注意:VLOOKUP默認情形下使用近似匹配
第4個參數,稱之為“range_ lookup”控制著VLOOKUP的完全和近似匹配。
對于完全匹配,使用FALSE或者0。對于近似匹配,設置range_lookup為TRUE或1:
=VLOOKUP(value,table,column,TRUE) //近似匹配
=VLOOKUP(value,table,column,FALSE) //完全匹配
然而,第4個參數range_lookup是可選的,默認值是TRUE,這意味著VLOOKUP默認情形下進行近似匹配。當進行近似匹配時,VLOOKUP假定表已排序并執行二分查找。在二分查找時,如果VLOOKUP找到完全匹配的值,則從該行返回一個值。但是,如果VLOOKUP遇到大于查找值的值,將從前一行返回一個值。
這種默認設置非常危險,因為許多人無意中將VLOOKUP保留在默認模式下,當表未排序時可能導致錯誤的結果。
為了避免這個問題,確保在想要完全匹配時使用FALSE或0作為第4個參數。
(未完待續……)