相信在很多童鞋的認(rèn)識(shí)里,Excel最常用的函數(shù)之一,都會(huì)有vlookup吧。
?VLOOKUP(查找目標(biāo),查找范圍,返回值的列數(shù),精確OR模糊查找)
常規(guī)的實(shí)例大家都可以在網(wǎng)上鋪天蓋地地找到教程,我這里不會(huì)詳細(xì)說(shuō)明。
關(guān)于vlookup的局限性,有以下三點(diǎn):
不能反向查找:vlookup只支持對(duì)查找范圍里第一列進(jìn)行匹配,不能對(duì)查找范圍內(nèi)其他列匹配
單一條件匹配:查找目標(biāo)只有一個(gè)條件,不支持多個(gè)條件
一對(duì)一查找:存在相同目標(biāo)值時(shí),只返回第一個(gè)
1、常規(guī)用法
公式:
=VLOOKUP(F3,B:C,2,0)
查找目標(biāo)只有一個(gè)(第一個(gè)參數(shù):F3)
剛好在查找范圍的第一列內(nèi)(第二個(gè)參數(shù):B:C)
返回值查找范圍的第二列值(第三個(gè)參數(shù):2)
使用精確匹配(第四個(gè)參數(shù):0)
2、反向查找
上面說(shuō)了,vlookup限制很死,只能從查找范圍第一列里找,那怎么破?!
公式:
=VLOOKUP(F3,IF({1,0},C:C,B:B),2,0)
利用IF({1,0},C:C,B:B)來(lái)構(gòu)造一個(gè)?C:C&B:B的數(shù)組,相當(dāng)于B:C的反向。
同理,這個(gè)也行:IF({0,1},B:B,C:C)
舉一反三
對(duì)于第一條常規(guī)用法的時(shí)候,如果我們想要返回第三列的值,正常情況下是
=VLOOKUP(F3,B:D,3,0)
將整個(gè)數(shù)組都包進(jìn)去,要是查找目標(biāo)與返回值之間相隔著十幾列甚至是幾十列呢?要數(shù)返回第幾列不就數(shù)死你了?
而如果用IF({1,0},C:C,B:B),則可以將數(shù)組控制在兩列
公式:
=VLOOKUP(F3,IF({1,0},B:B,D:D),2,0)
3、多條件匹配
哪里有剝削,哪里就有反抗!連“不讓多條件查找”都能破!
“&”組合數(shù)組方式
公式:
=VLOOKUP(F2&G2,IF({1,0},B:B&D:D,C:C),2,0)
由于是組合數(shù)組,不能直接按回車,要按Ctrl+Alt+Enter
先用F2&G2來(lái)構(gòu)造“鳳凰中文有效”的條件,然后匹配B:B&D:D之中有這個(gè)條件的。可以從下面的輔助列方法看到B:B&D:D的效果
輔助列方式
先在E列作個(gè)輔助列,公式
=B2&D2,然后向下填充
然后在I2輸入公式:
=VLOOKUP(G2&H2,IF({1,0},E:E,C:C),2,0)
一樣是通過(guò)IF({1,0},E:E,C:C)來(lái)構(gòu)造新的數(shù)組,只是第一列換成了輔助列
4、一對(duì)多查找
在本教程的栗子中,“鳳凰中文有效”匹配到的目標(biāo)值不只一項(xiàng),如何才能按順序返回不同的值呢?
還是需要輔助列
在原輔助列的右邊,在加一列,公式
=COUNTIF(E$1:E2,E2),向下填充
意思是,從E1開(kāi)始到當(dāng)前格時(shí),當(dāng)前格的值重復(fù)了多少次
E$1是為了向下填充的時(shí)候,每個(gè)COUNTIF都是保持從E1開(kāi)始數(shù)的。
然后定位J2,公式
=VLOOKUP(H3&I3&ROW(A1),IF({1,0},E:E&F:F,C:C),2,0)
按Ctrl+Alt+Enter
H3&I3&ROW(A1)為了構(gòu)造“鳳凰中文有效1”,對(duì)應(yīng)在E:E&F:F數(shù)組里找。
Row(A1)是為了向下填充的時(shí)候可以 每行自動(dòng)增加1。
微信搜索公眾號(hào)@圣創(chuàng)雜學(xué)堂,即可獲取每天更新
原創(chuàng)不易,轉(zhuǎn)載請(qǐng)保留出處。