VLOOKUP函数能否查找重复数据?如果不能,如何把第2个出现的数据找出来?
解决方法有很多,例如可以联合使用MATCH函数和INDEX函数解决,也可以联合使用IF函数和VLOOKUP函数来解决。
示例1
下面看一个例子,要求查找指定客户、指定产品的业务员姓名。可以设计如下的查找公式:
-
查找的基本逻辑是:把指定客户的数据提取出来,其他客户数据剔除; -
表达式 IF(A2:A17=G2,B2:C17,"") 就是判断A列单元格是不是指定客户,如果是,就将B列和C列数据留下来,如果不是,就替换为空值(""),其结果是一个两列数据的数组。 -
将表达式 IF(A2:A17=G2,B2:C17,"") 的结果(数组)作为VLOOKUP函数的第二个参数,在这个数组的第一列匹配产品,在第2列提取业务员,就是指定部门、指定产品下的业务员了。

示例2
下面是有几个同名的人,是同一个性别,但在不同部门,这样,我们可以设计如下查询公式:
=VLOOKUP(H4,IF((A2:A15=H2)*(B2:B15=H3),C2:D15,""),2,0)

-
表达式 IF((A2:A15=H2)*(B2:B15=H3),C2:D15,"") 就是判断A列是否为指定姓名、B列是否为指定性别,两个条件都满足时,将C列和D列数据留下来,生成一个不同部门的数组,再使用VLOOKUP函数在这个数组的第一列匹配部门,在第2列提取学历。

VLOOKUP 函数和 IF 函数的这种组合使用,可以解决很多复杂的实际问题为什么可以这样处理,就是 VLOOKUP 函数的第2个参数是Array,也就是这个参数可以是工作表的单元格区域,也可以是构建的数组。

