分享

Excel一对多万能查询公式index small if,理清思路就会了!

 kelvin_huang 2021-01-01

工作中vlookup函数更多用于一对一的查询,如果碰到了一对多的情况,经常会看到使用index+small+if函数公式

例如左右是基础信息,然后我们列出一个部门,需要把部门成员全部找出来,则可以使用这个一对多的万金没公式:

=INDEX(A:A,SMALL(IF($C$1:$C$6=$F$2,ROW($C$1:$C$6),2^10),ROW(A1)))&''

输入完公式按CTRL+SHIFT+ENTER三键进行计算

Excel一对多万能查询公式index+small+if,理清思路就会了!

很多文章中都出现了这个公式,但很少有解释为什么这么用的,我们来进行思路理解

❶首先我们查找的是市场部,所以首先组成一个数组,得到所有是市场部的列序号

使用公式一:$C$1:$C$6=$F$2,得到的结果是:

Excel一对多万能查询公式index+small+if,理清思路就会了!

❷然后我们要保留得到TRUE的结果,FALSE的结果让它变得无限大,我们这里使用的2的10次方,也就是1024,当然可以修改的更大,比如2的100次方

使用IF(公式一,row($C$1:$C$6),2)

Excel一对多万能查询公式index+small+if,理清思路就会了!

❸然后使用SMALL函数,找到第1小的数字,第2小的数字,第3小的数字....以此类推

Excel一对多万能查询公式index+small+if,理清思路就会了!

❹最后用Index函数,根据这些得到的索引序列号2,4,6,我们要得到的结果是姓名的话,也就是找到A列的第2个,第4个,第6个...就是我们的结果:

Excel一对多万能查询公式index+small+if,理清思路就会了!

A列的第1024个数字为空,所以显示成了0

❺最后用&'',让这些数字0不显示出来,就得到了最后我们需要的结果:

Excel一对多万能查询公式index+small+if,理清思路就会了!

所以这个万金油公式,你理解了么?

如果我们用INDEX+LARGE+IF也可以进行求解:

=IFERROR(INDEX(A:A,LARGE(IF($C$1:$C$6=$A$10,ROW($C$1:$C$6),-1000),ROW(A1))),'')

Excel一对多万能查询公式index+small+if,理清思路就会了!

它的求解是从下向上的求出所有结果。

所以你学会了么?欢迎留言讨论~

专栏
Excel公式函数技巧视频教程

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多