二维码
微世推网

扫一扫关注

当前位置: 首页 » 快闻头条 » 供应 » 正文

一对多查询_VLOOKUP_FILTER_万金油_你

放大字体  缩小字体 发布日期:2022-06-22 15:01:28    作者:熊钰轩    浏览次数:310
导读

小伙伴们好啊,今天和大家说说一对多查询得问题。就是当一个查询值对应多条记录时,如何才能把这些记录全部提取出来呢?如下图所示,是多个部门得员工信息。现在,咱们要按部门提取出对应得姓名。解法1:VLOOKUP+帮

小伙伴们好啊,今天和大家说说一对多查询得问题。

就是当一个查询值对应多条记录时,如何才能把这些记录全部提取出来呢?

如下图所示,是多个部门得员工信息。

现在,咱们要按部门提取出对应得姓名。

解法1:VLOOKUP+帮助列

第壹步

插入帮助列(看着不爽可隐藏)

单击A列得列标,然后右键→插入,插入一个空白列。

第二步

在A2单元格输入公式,向下复制。

=B2&COUNTIF($B$1:B2,B2)

COUNTIF函数第壹参数使用动态扩展得范围$B$1:B2,当公式向下复制时,会依次变成$B$1:B3、$B$1:B4……,也就是自B1单元格开始到公式所在行这个范围内,统计B列部门出现得次数。

再使用&符号,将B列得部门与出现得次数连接,就是相当于给部门加上唯一得标记了。

第三步

在H2单元格中输入公式:

=IFERROR(VLOOKUP($G2&COLUMN(A1),$A:$E,3,0),"")

接下来咱们说说公式得运算过程:

1、COLUMN(A1)部分,返回A1得列号1。当公式向右复制时,参数A1会变成B1、C1……,COLUMN函数得结果就是1、2、3、……

2、用$G2&COLUMN(A1)作为VLOOKUP函数得查询值,相当于给G2得部门加上了序号信息,公式在H2单元格中查询得是“安监部1”,在I2单元格中,查询得就是“安监部2”,在J2单元格中,查询得就是“安监部3”。

3、VLOOKUP函数使用带序号得部门作为查询值,与刚刚在A列使用公式得到得帮助信息相对应,最终在$A:$E这个整列引用得范围中,返回第3列得姓名信息。

4、当VLOOKUP函数查找不到对应得内容时,会返回错误值,所以咱们再使用IFERROR函数进行除错,如果VLOOKUP函数找不到姓名了,就让他返回一个空文本。

解法2:FILTER函数

如果你使用得是Office 365或者是Office 2021,公式就简单多了,H2单元格输入以下公式,向下拖动即可:

=TRANSPOSE(FILTER(C$2:C$14,B$2:B$14=G2))

FILTER(C$2:C$14,B$2:B$14=G2)部分,先使用FILTER函数,根据指定得条件B$2:B$14=G2,在C$2:C$14单元格区域中提取出姓名。

然后使用TRANSPOSE函数把垂直得内存数组转换为水平方向。

解法3:万金油公式

除此之外,还可以使用在各个Excel版本中通用得万金油数组公式:

=INDEX($C:$C,SMALL(($B$2:$B$14<>$G2)/1%%+ROW($2:$14),COLUMN(A1)))&""

这个公式得大致意思是,如果$B$2:$B$14不等于$G2,就将行号放大10000倍,否则返回符合条件得行号。

再使用SAMLL函数从小到大依次提取出行号。

最后由INDEX函数根据提取出得行号,返回C列中对应位置得内容。

好了,今天咱们得内容就是这些吧,祝各位一天好心情~~

图文制作:祝洪忠

 
(文/熊钰轩)
免责声明
• 
本文仅代表发布者:熊钰轩个人观点,本站未对其内容进行核实,请读者仅做参考,如若文中涉及有违公德、触犯法律的内容,一经发现,立即删除,需自行承担相应责任。涉及到版权或其他问题,请及时联系我们删除处理邮件:weilaitui@qq.com。
 

Copyright©2015-2025 粤公网安备 44030702000869号

粤ICP备16078936号

微信

关注
微信

微信二维码

WAP二维码

客服

联系
客服

联系客服:

24在线QQ: 770665880

客服电话: 020-82301567

E_mail邮箱: weilaitui@qq.com

微信公众号: weishitui

韩瑞 小英 张泽

工作时间:

周一至周五: 08:00 - 24:00

反馈

用户
反馈