这次教程有点难,实现一对多查询,这或许是最经典的方法了
Hello,大家好,当我们使用vlookup函数查找数据遇到重复值得时候,函数仅仅会返回第一个查找到的结果,但是在日常的工作中我们经常要根据一个值来查找到多个结果,这个时候vlookup函数就不能满足我们需求了,今天就跟大家分享下在excel中如何实现一对多查询
如下图,我们想要根据部门,将相同部门的人都放在一行中,只需要点击表格中的第一个单元格,输入公式
=IFERROR(INDEX($B:$B,SMALL(IF($A:$A=$F2,ROW($A:$A)),COLUMN(A1))),””)&””
按ctrl+shift+回车向右向下拖拉公式即可快速完成,在这里我们就是通过查找部门来快速的返回多个结果
下面跟大家详细的讲解下这个公式是如何理解在,在这里我们利用数组公式来完成查找的,函数是以index函数为主体来返回结果,
Index函数
第一参数:$B:$B,就是我们要返回的结果列
第二参数:SMALL(IF($A:$A=$F2,ROW($A:$A)),COLUMN(A1))),使用small函数来获取查找值的具体位置
在这里我们主要来理解下small函数,small函数的作用是返回一组数据中从小到大的第n个值,他的参数一共有两个,第一参数:数据区域,第二参数:数据区域的位置(从小到大)
在这里Small函数在公式中的参数为
第一参数:IF($A:$A=$F2,ROW($A:$A))
第二参数:COLUMN(A1))
在IF($A:$A=$F2,ROW($A:$A))中,我们使用if函数来判断A列的数据是不是等于f2单元格,也就是行政部,,如果a列的单元格等于行政部就让函数返回等于行政部位置的行号,在这里我们省略了if函数的第三参数,当条件不正确的时候函数就会返回false,他的结算结果如下图
因为small函数会自动将false这个结果忽略掉,所以现在small函数的第一参数仅仅包括3,5,7,9,17,这5个数据,因为我们在行方向上拖动数据的,所以我们使用COLUMN(A1))来构建一个从1开始的序列,这样的话我们就能分别将这5个列号提取出来,将提取出来的列号作为index的第二参数来返回对应的结果
然后我们使用IFERROR来将错误值屏蔽掉错误值,最后在公式的最后使用链接符号链接上一个空值,是为了避免当我们的查找值为空的时候函数返回0
以上就是这个index+small+if函数的计算过程,怎么样,你学会了吗?
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2305938578@qq.com 举报,一经查实,本站将立刻删除。本文网址:https://www.excelwordppt.com/word-excel-ppt/6599.html