1、VLOOK函数一对多多对多查询最简单的一对多、多对多查询今天和大家分享一组特别简单的方法,也能实现一对多、多对多的数据查询需要。先看数据,是一份各部门的员工信息表:咱们首先要完成的是:一对多查询一对多查询,就是符合条件的有多个结果。本例中,咱们要根据G2单元格指定的部门,提取出所有财务部的人员信息。步骤1在D2单元格输入以下公式,向下拖动复制公式:=(A2=G$2)+D1(A2=G$2)部分,用A列的部门与G2单元格指定的部门进行对比,如果相同,返回逻辑值TRUE,否则返回逻辑值FALSE。然后将逻辑值与前一个单元格中的数值相加。在四则运算中,TRUE的作用相当于1,FALSE的作用相当于0。
2、也就是如果部门条件符合了,D列的数值就增加1,否则还等于前一个数值。注意观察,1、2、3、4这些序号首次出现的行,就是符合条件的记录。步骤2F6单元格输入以下公式,向下向右拖动:=IFERROR(INDEX(A:A,MATCH(ROW(A1),$D:$D,0),)这个公式稍长了一点,咱们拆解看看:先说说ROW(A1)部分:ROW函数的作用是返回参数的行号,ROW(A1)结果就是A1的行号1。当公式向下复制时,ROW(A1)会依次变成ROW(A2)、ROW(A3),最终得到递增的序号1、2、3,结果用作MATCH函数的查找值。再看MATCH(ROW(A1),$D:$D,0)部分。MATCH函数的作用是查询指定内容在一行或一列中首次出现的位置。这里要查询的内容是ROW(A1)的结果(也就是数值1)在D列首次出现的位置,查询结果为2。公式向下复制时,会依次查询1、2、3在D列首次出现的位置。得到位置信息了,接下来再使用INDEX函数在A列返回对应位置的内容:INDEX(A:A,MATCH(ROW(A1),$D:$D,0)当公式一直向下复制时,增加的序号在D列找不到了,公式会返回错误值,所以在最外层加上IFERROR函数,将错误值转换为空文本。