一对多查询?这里的方法是比较全的,值得你收藏!
点击上方
蓝色
文字 关注我们吧!
送人玫瑰,手有余香,请将文章分享给更多朋友
动手操作是熟练掌握EXCEL的最快捷途径!
工作中如果遇到一对一查找的问题时,大家都会使用VLOOKUP函数,这个很简单。但是如果符合条件的结果有很多个,VLOOKUP函数只能返回第一个,剩下的就没有办法了。下面我就和大家来分享一下几个实现一对多查询的方法!
切片器
使用切片器,你可以使用数据透视表,或者创建表格都是可以的。
VLOOKUP函数法
其实,利用VLOOKUP函数也可以实现一对多的查询。只不过,我们需要做一个辅助列。
我们在表格的最左侧插入一列,在单元格A2中输入“=B2&COUNTIF($B$1:B2,B2)”并向下拖曳。
在单元格K2中输入“=IFERROR(VLOOKUP($I$2&ROW(A1),A:C,3,0),"")”并向下拖曳到单元格K17。
思路:
以合并条件来查询
以IFERROR函数来屏蔽错误值
INDEX函数+SMALL函数+IF函数法
在单元格J2中输入“=IFERROR(INDEX($B$2:$B$17,SMALL(IF(A$2:A$17=$J$2,ROW($A$2:$A$17)-1,100),ROW(A1))),"")”,CTRL+SHIFT+ENTER并向下拖曳到单元格A17即可。
思路:
利用IF函数判断区域中等于给定条件的数据,若等于,则返回行号-1;若不等于,则返回100,以屏蔽0
利用SMALL函数依次由小到大返回符合条件的数据的行号
INDEX函数查询
IFERROR屏蔽错误值
OFFSET函数+SMALL函数+IF函数法
其实OFFSET函数法和上面的例子原理上类似。
在单元格J2中输入“=IF(ROW()-1>COUNTIF($A$2:$A$17,$J$2),"",OFFSET($B$1,SMALL(IF(A$2:A$17=$J$2,ROW($A$2:$A$17)-1,100),ROW(A1)),0))”,CTRL+SHIFT+ENTER并向下拖曳即可。
思路:
SMALL函数部分和上例一样
利用OFFSET函数依据SMALL函数的返回值进行偏移
最后利用IF函数屏蔽错误
文章推荐理由:
一对多查询时常见的数据处理方式,方法有多样,各有千秋。
-END-
长按下方二维码关注EXCEL应用之家
面对EXCEL操作问题时不再迷茫无助
推荐阅读:
戳原文,更有料!免费模板文档!