想查找每个人的销售数据,但是每个人分布在不同的工作表里,一个个的查找太过于麻烦,就可以利用VLOOKUP函数进行多表查找,如下数据,这里我只模拟3个工作表,实际情况十几个几十个都有可能,每个表的格式一致
在主表里去查找各个的表里的人名,查询工资,当表格不多的时候我们可以用以下公式,多套几个IFERROR:=IFERROR(IFERROR(VLOOKUP(A2,财务部!A:B,2,0),VLOOKUP(A2,行政部!A:B,2,0)),VLOOKUP(A2,IT部!A:B,2,0))
但是当表格很多的时候这样嵌套就会很长,我们就可以利用INDIRECT函数来配合VLOOKUP使用,公式:=VLOOKUP(A2,INDIRECT(LOOKUP(1,0/COUNTIF(INDIRECT({"财务部","行政部","IT部"}&"!a:a"),A2),{"财务部","行政部","IT部"}&"!a:b")),2,0)
公式解析:
首先来看COUNTIF的这段,用INDIRECT函数获取每个表的A列区域,再用COUNTIF函数这它们的A列区域里怼A2单元格里的姓名计数,如果计数>0,就说明这个表里有这个人的名字
再用0/,实现非0数字变成0,计数为0的变为除0错误(0不能做分母)
LOOKUP查找小于等于1的位置,并且返回这个位置所对应的工作表名称+区域
套入INDIRECT函数,构造了这个区域,再使用VLOOKUP查找这个区域,返回它的第二列工资列即可