在實際工作中,我們經常使用vlookup函數與index-match函數進行查找,這倆個函數都可以實現查找的功能,下面就基本查找,反向查找,多條件查找對比下這兩個函數的運用方式。
一:基本查找
vlookup第一個參數表示查找的依據,第二個參數表示查找的範圍,第三個參數表示返回的結果在查找範圍的第幾列,第四個參數是選擇精確匹配還是近似匹配。主要值得注意的地方是選擇的範圍必須從查找依據所在列開始選,否則返回結果錯誤,查找對應單元格一般選擇精確匹配,近似匹配一般適用於對應區間的查找。
index-match函數中先輸入match函數,match函數第一個參數表示查找依據,第二個參數表示查找依據所在的列,第三個參數表示精確匹配,此時顯示查找的數據所在單元格第幾行。外面嵌套index函數,第一個參數表示所在列,第二個參數match表示所在行,此時就實現了查找的目的。
圖一
圖二
二:反向查找
vlookup函數看起來就相對複雜了,第一個參數任然是查找的依據,第二個參數變成了IF({1,0},$D$1:$D$20,$B$1:$B$20),這個函數怎麼理解呢?其實對於if函數,第一個參數判斷是否滿足某個條件,如果滿足,則返回第二個參數,否則返回第三個參數,此處運用了數組的計算,1表示滿足條件,返回的是$D$1:$D$20單元格,0表示不滿足條件,返回$B$1:$B$20單元格,此函數的作用是B列和D列交換順序。此處第三個參數填2即可,而不是填3,第四個參數不變。注意此處是數組函數,返回的時候按ctrl+shift+enter才能計算出正確結果。
index-match函數在此處就顯得簡單了,因為和基本查找並無實質性區別。
圖三
三:多條件查找
vlookup中,多個條件用連接符&連接,視為一個條件,查找依據所在的列也要用連接符&連接,第二個參數
利用if數組函數IF({1,0},$A$1:$A$19&$B$1:$B$19,$C$1:$C$19),此處第三個參數仍然填2即可。
index-match函數查找依據,查找所在行,查找所在列也都用連接符連個倆個條件,但是沒有了數組公式的運算,理解起來更容易一些吧。
圖四
綜上,就是本文所敘述的簡單的倆種查找函數的對比,當然實務中查找的形式多種多樣,比如INDIRECT函數,offset函數等等,需要我們在工作中靈活運用。