打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
一对多查询,怎能不会这个组合套路?



 我们对数据进行查询时,经常会使用VLOOKUP函数。

但有时,我们提取符合条件的结果是多个,而不是一个,这时候VLOOKUP就犯难了。

举个例子

如下图,左侧A1:C10是一份学员名单表,现在需要根据F1单元格的“EH图班”这个指定的条件,在F2:F10单元格区域中,提取该班级全部学员名单。


F1的值是“EH图表班”,需要在F2:F10单元格区域得到图表班相关成员的人名。

接下来就分享一个函数查询方面的万金油套路:

INDEX+SMALL+IF

F2单元格输入以下数组公式,按住Ctrl+Shift键不放,再按回车键,然后向下填充:

=IFERROR(INDEX(B:B,SMALL(IF(A$1:A$10=F$1,ROW($1:$10)),ROW(A1))),'')

1.公式讲解

IF(A$1:A$10=F$1,ROW($1:$10))

这部分,先判断A1:A10的值是否等于F1,如果相等,则返回A列班级相对应的行号,否则返回FALSE,结果得到一个内存数组:

{FALSE;2;3;FALSE;FALSE;FALSE;FALSE;8;FALSE;10}


再来看这部分:

SMALL(IF(A$1:A$10=F$1,ROW($1:$10)),ROW(A1))

SMALL函数对IF函数的结果进行取数,随着公式的向下填充,依次提取第1、2、3……n个最小值,由此依次得到符合班级条件的行号。

随后使用INDEX函数,以SMALL函数返回的行号作为索引值,在B列中提取出对应的姓名结果。

当SMALL函数所得到的结果为错误值#NUM时,意味着符合条件的行号已经被取之殆尽了,此时INDEX函数也随之返回一个错误值,为了避免公式返回一个错误值,最后使用IFERROR函数进行规避,使之返回一个空文本''。

2.其它说明

很多时候,一些朋友喜欢把INDEX+SMALL+IF的套路写成:

=INDEX(B:B,SMALL(IF(A$1:A$10=F$1,ROW($1:$10),4^8),ROW(A1)))&''

=INDEX(B:B,SMALL((A$1:A$10<>F$1)/1%+ROW($1:$10),ROW(A1)))&''

这两个套路,通过引值真空单元格搭配&””的方法,很巧妙的规避了错误值的出现,而且公式的长度得到了精简,是IFERROR函数未出现前处理错误值的常用技巧。

只是当公式的查找结果为数值或者日期时,这个方法会把数值变成文本值,并不利于数据的准确呈现以及再次统计分析。

比如一个简单的SUM求和,对于此类文本数据的统计都是麻烦的,原因是大部分统计函数都忽略文本值,不予计算。

所以通常还是建议大家使用IFERROR函数来处理错误值。

3.练手题

最后留下一道练手题,如下图,根据A1:C10区域的数据,将E列相关班级的姓名,填充到F2:I5区域。

示例文件下载:

http://pan.baidu.com/s/1nuDoYFZ#list/path=%2F


——我是星光,我是

神,拱手,祝安,挥手,下次再见喽。



北京大学出版社京东图书品牌周活动,品牌图书领券满 300减 100 ,爆品 5折抢,【Excel三大神器】又一次迎来大优惠,大家记得点击下方图片进入小程序抢优惠券哦

领取优惠券后,在页面中下拉,选择'北大计算机'→'Excel畅销系列'就能找到【Excel三大神器】啦!

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
学EXCEL函数,怎能不会这个组合套路?
14学Excel函数,怎能不会这个经典的查询套路?
合并单元格下提取不重复清单,经典公式依旧轻松搞定!
Excel函数技巧之返回多个匹配结果
一对多查询,你会吗?
INDEX+SMALL+IF+ROW函数组合使用解析
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服