点击蓝字 关注我吧!
今天这篇,聊一个Excel中的高频需求:一次返回多个值。
比如,要从左边表格里,返回其中部分人员的全部信息。要返回的信息内容和顺序与原表完全一致。

面对这个问题,我个人觉得有两个函数最为合适:XLOOKUP、FILTER。
一、XLOOKUP
1.方法
在J2输入以下公式,并向下引用到J5单元格。
=XLOOKUP(I2,B:B,C:F)

2.结合语法解析
=XLOOKUP(查找值,查找数组,返回数组,[未找到值],[匹配模式],[搜索模式])
查找值:I2,王五。
查找数组:B:B,去B列查找王五。
返回数组:C:F。在B列找到王五在第4行,返回第4行C~F列的内容。
匹配模式:省略,没找到会返回#N/A错误。
匹配模式:省略,默认精确匹配。
搜索模式:省略,默认从前往后搜索。
3.注意事项
XLOOKUP只会返回第1条匹配的数据。如果有2个“王五”,XLOOKUP 只会返回第一个“王五”的相关记录就结束查找。
二、FILTER
1.方法
在J2输入以下公式,并向下引用到J5单元格。
=FILTER($C$2:$F$12,$B$2:$B$12=I4)

2.结合语法解析
=FILTER(数组,包括,[空值])
数组:$C$2:$F$12,返回C列~F列的内容。
包括:$B$2:$B$12=I4,这是筛选条件;
判断B2:B12的姓名是否等于"王五",判断结果是TRUE的时候,第1参数对应的一行被保留。
空值:省略,如果没有符合条件的记录,返回#CALC!错误。
3.注意
① FILTER会返回所有符合条件的记录。
如果有两个王五,它会返回两个结果,并自动溢出到相邻单元格。
② FILTER是动态数组函数,参数引用整列,它会老老实实把1.4万行都对比一遍,可能造成卡顿。
不过,我们也可以结合区域修剪运算符来搞定。在冒号的后面加上点,代表裁剪掉下方和右边的空白单元格,既方便又高效。
=FILTER(C:.F,B:.B=I2)
三、小尾巴
看到这里,有人可能会说,VLOOKUP、INDEX+MATCH、CHOODEROWS+MATCH不是也可以吗?
没错,确实可以,但对比起来,还是XLOOKUP和FILTER简单太多啦!
记得
点赞、关注
,再划走哦~
夜雨聆风