vlookup跨工作簿查找多列数据(对多列并排数据的查询引用)(1)

对于“多列并排”大家可能有点儿陌生,我们先来看一张图:

vlookup跨工作簿查找多列数据(对多列并排数据的查询引用)(2)

从图表中可以看出,在第一行的列标题中,“员工姓名”和“月薪”重复出现了多次,这就是并排;除了“员工姓名”列和“月薪”列之外,还可以根据实际需要添加列,这既是多列。

如何在这样的数据表中查询相应员工的月薪呢?

大家第一时间想到的肯定是变成1列,No,No,No……这不是我们的目的,我们的目的是在表格格式不变的情况下。


一、Vlookup函数法。

用此函数应该是大部分亲的首选,因为查询引用就是它的看家本领。但要实现多列并排的查询,需要借助于Iferror函数来实现。

Iferror函数

功能:检查指定的表达式是否有误,如果有误,则返回指定的值,否则返回表达式本身的值。

语法结构:=Iferror(值,表达式有误时的返回值)。

示例:

在单元格中输入:=IFERROR(1,""),则返回1,即返回表达式本身的值。

在单元格中输入:=IFERROR(#N/A,"错误"),则返回“错误”,因为代码#N/A是错误代码。

目的:查询员工对应的月薪。

vlookup跨工作簿查找多列数据(对多列并排数据的查询引用)(3)

方法:

在目标单元格中输入公式:=IFERROR(VLOOKUP(J3,B3:C12,2,0),IFERROR(VLOOKUP(J3,D3:E12,2,0),VLOOKUP(J3,F3:G12,2,0)))。

解读:

1、从公式中可以看出,总体上是Iferror函数的嵌套,当第一个Vlookup函数查询不到值时,直接跳转到第二个Iferror函数,用Vlookup函数进一步查询……以此类推,所以理解Iferror函数的语法很关键哦!

2、用此方法的缺点也很明显,公式较长,逻辑上容易出现错误,尤其是最后的右括号,不容易记清楚到底是几个;如果列数较多,公式长度将成倍增长。


二、TEXTjoin函数法。

Textjoin函数为Office365新增函数,当然在WPS在也可以使用。

功能:使用分隔符连接到列表或文本字符串区域。

语法结构:=Textjoin(分隔符,TRUE或FALSE,字符串1,[字符串2]……)。

解读:

1、第1个参数分隔符可以根据实际情况来定义。

2、第2个参数分为TRUE或FALSE2个值,TRUE代表包括空白单元格,FALSE代表不包括空白单元格。

目的:查询员工对应的月薪。

vlookup跨工作簿查找多列数据(对多列并排数据的查询引用)(4)

方法:

在目标单元格中输入公式:=TEXTJOIN(,1,IF($B3:$F12=J3,$C3:$G12,""))。

解读:

示例中,巧用If函数把不符合条件的变成空,符合条件的连接在一起。


三、Concat函数法。

功能:连接列表或文本字符串区域。

语法结构:=Concat(字符串1,[字符串2]……)。

解读:

此函数没有连接符号,也没有是否忽略空白单元格,直接将字符串连接到一起即可。

目的:查询员工对应的月薪。

vlookup跨工作簿查找多列数据(对多列并排数据的查询引用)(5)

方法:

在目标单元格中输入公式:=CONCAT(IF($B3:$F12=J3,$C3:$G12,""))。


四、Sumif函数法。

功能:对满足条件的单元格求和。

语法结构:=Sumif(条件范围,条件,[求和范围])。

解读:

当“条件范围”和“求和范围”相同时,可以省略“求和范围”。

目的:查询员工对应的月薪。

vlookup跨工作簿查找多列数据(对多列并排数据的查询引用)(6)

方法:

在目标单元格中输入公式:=SUMIF(B3:F12,J3,C3:G12)。


最美尾巴:

目的是查询引用,但在具体的操作过程中,巧妙应用了Textjoin、Concat、Sumif函数的特点,间接实现了查询引用的功能,而且比Vlookup等函数实现起来要简单,所以函数在具体的应用过程中,一定要变通,变通制胜!


,