可以查詢的函數有很多,比如lookup、vlookup、hlookup、新來的XL函數,即使不是查詢專用函數,比如sumifs,sumproduct、offset等也來搶查詢這個飯碗,我們今天說的index+match組合也是一個為查詢而生的函數,但我估計知道怎麼使用的不足50%,連hlookup都不太知道,在工作中大行其道的還是vlookup。
vlookup還是有局限性的,就是要查詢的條件區域必須在返回值的前面,要麼需要對調下列,要麼通過數組公式來實現,總之很麻煩,舉個例子,如下所示:
大家可以看到,我查詢太原屬於哪一個省,出現了錯誤值,因為它在後面沒能找到返回值,所以報錯沒找到,如果非要解決只能破壞表的結構或利用數組了。
在實際工作中index就沒這個問題了,尤其是和match結合之後,它就有點說不上的強悍了,可以說能夠替代vlookup與和hlookup的大部分功能。
那我們就先說下這兩個函數的語法吧,index有數組形式和引用形式,今天主要是說它的數組形式,INDEX(引用區域,第幾行,第幾列),這也是使用最多的形式。
用這個來解決上面的例子我們可以在C10單元格,我們輸入=INDEX(A2:B7,1,1),就可以得到了,A2:B7是引用區域,我們要這個區域的第一行第一列就是我們要的結果。所以我們輸入了1,1。
但是只是單獨使用index會有一個困擾,那就是我們需要知道我們所要的結果在第幾行、第幾列,這不是太累了麼。那怎麼解決呢,這時候match函數就派上用場了,我叫他匹配函數,可以解決第幾行或第幾列的問題,上表中我們明顯可以看到我們所需返回的結果在第一列,這個地方沒必要用match,但是在第幾行就有點多了,如果有2000行那就麻煩了,這個就有必要用match函數了。
同樣我們也說一下match函數的用法
match(查找的值, 查找區域, match_type),最後一個我們可以輸0,也就是精確匹配,這是用的比較多的,-1和1的用法我目前還沒用到。
我們在D10單元格輸入=MATCH(B10,B2:B7,0),我們可以看到我們知道查詢的太原和結果山西是在同一行的,所以我們利用這一點,我們得到了太原的行,也就得到了結果所在的行。
這樣我們就可以用MATCH(B10,B2:B7,0)嵌套到index函數中去了,我們將第二個參數1改為MATCH(B10,B2:B7,0),就完成了這兩個函數的搭檔工作。
喜歡我的文章,歡迎同步關注我的微信公眾號:跟我學EXCEL圖表