对于“多列并排”大家可能有点儿陌生,我们先来看一张图:
从图表中可以看出,在第一行的列标题中,“员工姓名”和“月薪”重复出现了多次,这就是并排;除了“员工姓名”列和“月薪”列之外,还可以根据实际需要添加列,这既是多列。
如何在这样的数据表中查询相应员工的月薪呢?
大家第一时间想到的肯定是变成1列,No,No,No……这不是我们的目的,我们的目的是在表格格式不变的情况下。
一、Vlookup函数法。
用此函数应该是大部分亲的首选,因为查询引用就是它的看家本领。但要实现多列并排的查询,需要借助于Iferror函数来实现。
Iferror函数
功能:检查指定的表达式是否有误,如果有误,则返回指定的值,否则返回表达式本身的值。
语法结构:=Iferror(值,表达式有误时的返回值)。
示例:
在单元格中输入:=IFERROR(1,''),则返回1,即返回表达式本身的值。
在单元格中输入:=IFERROR(#N/A,'错误'),则返回“错误”,因为代码#N/A是错误代码。
目的:查询员工对应的月薪。
方法:
在目标单元格中输入公式:=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代表不包括空白单元格。
目的:查询员工对应的月薪。
方法:
在目标单元格中输入公式:=TEXTJOIN(,1,IF($B3:$F12=J3,$C3:$G12,''))。
解读:
示例中,巧用If函数把不符合条件的变成空,符合条件的连接在一起。
三、Concat函数法。
功能:连接列表或文本字符串区域。
语法结构:=Concat(字符串1,[字符串2]……)。
解读:
此函数没有连接符号,也没有是否忽略空白单元格,直接将字符串连接到一起即可。
目的:查询员工对应的月薪。
方法:
在目标单元格中输入公式:=CONCAT(IF($B3:$F12=J3,$C3:$G12,''))。
四、Sumif函数法。
功能:对满足条件的单元格求和。
语法结构:=Sumif(条件范围,条件,[求和范围])。
解读:
当“条件范围”和“求和范围”相同时,可以省略“求和范围”。
目的:查询员工对应的月薪。
方法:
在目标单元格中输入公式:=SUMIF(B3:F12,J3,C3:G12)。
最美尾巴:
目的是查询引用,但在具体的操作过程中,巧妙应用了Textjoin、Concat、Sumif函数的特点,间接实现了查询引用的功能,而且比Vlookup等函数实现起来要简单,所以函数在具体的应用过程中,一定要变通,变通制胜!
联系客服