VLOOKUP函数有一定的局限性,通常情况下,只能返回符合条件的单个结果,如果有多个符合条件的结果,就需要添加辅助列,在辅助列中A2输入公式:=COUNTIF(B$2:B2,F$1)下拉复制到A16.意思是用COUNTIF函数在B$2:B2这个区域内统计查询值(F1单元格)出现的次数。值得注意的是第一个B2是行绝对引用,第二个B2是相对引用,这样公式在向下复制时,就依次变成了B$2:B3、B$2:B4、B$2:B5……。也就是随着公式向下复制,给COUNTIF函数指定一个逐行扩展的引用区域。COUNTIF函数能够统计B列从B2单元格开始,到公式所在行这个范围中,与查询值相同的个数。如果查询值在B列是第一次出现,结果就是1;如果是第二次出现,结果就是2……假如只有两个符合条件的结果,查询值出现之后的其他内容,结果仍然是2.
在F3输入公式:=IFERROR(VLOOKUP(ROW(A1),A:C,3,0),"")(此公式适合2003以上版本,2003版本输入公式是=IF(ISERROR(VLOOKUP(ROW(A1),A:C,3,0)),"",VLOOKUP(ROW(A1),A:C,3,0)))提取结果。
公式中的ROW(A1)部分,公式向下复制时,依次变为ROW(A2)、ROW(A3)……,结果得到1、2、3……的递增序列。VLOOKUP函数使用这个递增序列作为查询值,在A:C列中,以精确匹配的方式返回与序号相对应的姓名。当ROW函数的结果大于A列中的最大的数字时,VLOOKUP函数会因为查询不到结果而返回错误值#N/A,IFERROR函数用于屏蔽错误值,使之返回空文本""。2003版本就IF(ISERROR(……屏蔽错误值。
Excel中函数通常只能返回一个值。用函数的数组形式可以返回多个值,但是获得的多个值也仅能用于另一函数(函数嵌套),最终返回的还是一个值。可以这样来理解:函数设置在一个单元格中,一个单元格只能有一个值。所以VLOOKUP函数不能返回多个值。
单一的VLOOKUP函数是不行的,不过想要达到你所要求的效果,可以通过对一定单元格区域使用以VLOOKUP函数为核心的公式,结合其他函数完成。当然也可以有其他构思,完全不用VLOOKUP函数公式。前提是需要对一定单元格区域预置公式,根据查询结果反馈在这些单元格区域里。
VLOOKUP只能得到符合条件的第一个数据,不能得到多值,可以用INDEX实现。
VLOOKUP函数只能返回一个结果
用INDEX、SMALL组合的数组公式才会返回多个结果