在EXCEL中處理數(shù)據(jù)查詢時(shí),經(jīng)常要使用VLOOKUP或LOOKUP函數(shù)。但有時(shí)符合條件的查詢結(jié)果有多條,這就需要用一對(duì)多查詢,這時(shí)再使用VLOOKUP或LOOKUP就不是太容易能實(shí)現(xiàn)了,這種情況可以使用INDEX + SMALL + IF組合函數(shù)來實(shí)現(xiàn)這個(gè)功能。 如下圖所示,要根據(jù)左邊表中的'手機(jī)'這個(gè)條件,查詢提取B列所有符合要求的數(shù)據(jù)。 使用INDEX + SMALL + IF組合函數(shù)的常用公式是: 在F2單元格中輸入數(shù)組公式 =IFERROR(INDEX(B:B,SMALL(IF(A$1:A$8=F$1,ROW($1:$8)),ROW(A1))),''),按CTRL + SHIFT + ENTER完成輸入,再向下填充公式即可。 公式中的IF(A$1:A$8=F$1,ROW($1:$8)),其機(jī)理是先判斷A$1:A$8的值是否和F1單元格的值相同,如果相等則返回A列所對(duì)應(yīng)的行號(hào),否則返回FALSE。整個(gè)IF函數(shù)返回的數(shù)組公式結(jié)果是:{FALSE;2;FALSE;4;5;FALSE;FALSE;8}。 函數(shù)SMALL(IF(A$1:A$8=F$1,ROW($1:$8)),ROW(A1))的作用是對(duì)IF的返回值進(jìn)行取數(shù),隨著公式的填充,依次提取第1、2、3、4……個(gè)最小值,由此得到符合要求的行號(hào)。 最后使用INDEX函數(shù),以SMALL函數(shù)提取的行號(hào)作為索引值,在B列取出相應(yīng)的數(shù)據(jù)。 隨著公式向下填充,后面的行號(hào)已經(jīng)不再符合要求,SMALL函數(shù)最后所得的結(jié)果是錯(cuò)誤值#NUM,為了避免公式顯示錯(cuò)誤值,使用了IFERROR函數(shù)進(jìn)行處理,使之返回一個(gè)空文本。 |
|