网站首页 > 基础教程 正文
举个工作中的例子,左边的数据是公司员工各部门的名单数据,现在我们需要根据部门,把所有员工姓名查找出来,这就是一对多查询问题
今天我们分享3种方法来解决,分别用到的公式是VLOOKUP,FLITER,TEXTJOIN公式
方法一:使用Vlookup公式
使用vlookup公式前,我们需要建立一个辅助列,我们在部门前插入一列,然后输入的公式是:
=B2&COUNTIFS($B$2:B2,B2)
运用的是累计计数原理,分别连接了各个部门出现的第几次
那我们需要查找出各个部门的员工信息,则需使用公式:
=VLOOKUP($E2&COLUMN(A1),$A:$C,3,0)
Column函数返回单元格值的列标,向右填充时,会自动的变成1,2,3,4
最后我们为了屏蔽错误值,会加上IFNA公式:
=IFNA(VLOOKUP($E2&COLUMN(A1),$A:$C,3,0),"")
方法二:使用FILTER公式
Filter是个筛选函数,类似于筛选的用法,当我们输入公式:
=FILTER(B:B,A:A=D2)
表示返回B列的结果,筛选范围是A列,筛选值是D2,通过溢出功能,得到的结果是一个纵向的数组
那我们需要对数组进行转置一下,则输入的公式是:
=TRANSPOSE(FILTER(B:B,A:A=D2))
向下填充,得到了所有的结果,无须辅助列,也无需嵌套IFERROR公式就得到了结果
方法三:使用Textjoin公式
以上的员工结果都是在多个单元格中显示的,如果我们想把所有员工在一个单元格中显示,并且用顿号分开,则我们只需要一个公式搞定:
=TEXTJOIN("、",TRUE,IF(A:A=D2,B:B,""))
第一个参数表示分隔符号,这里我们用的顿号
第二个参数表示,是否忽略空白值,这里用的TRUE,进行忽略
第三个参数表示哪些文本需要连接,因为这里是分部门的,所以我们用IF来判断,保留了对应部门的员工姓名,从而进行了连接
关于上面3个公式,你都学会了么,更喜欢用哪种?
猜你喜欢
- 2024-10-18 Excel函数:office 365新增筛选函数FILTER的打开方式
- 2024-10-18 Excel VBA:掌握数组使用技巧,高效处理数据
- 2024-10-18 Excel中CHOOSECOLS+FILTER函数组合有妙用,新手必备!
- 2024-10-18 鸟枪换大炮,Excel查找的另一个函数——Filter函数
- 2024-10-18 Excel数组公式与自动溢出 excel数组公式与自动溢出的区别
- 2024-10-18 学习VBA,报表做到飞 第二章 数组 2.6 清空数组与嵌套数组转换
- 2024-10-18 spring boot 如何统一处理 Filter、Servlet 中的异常信息
- 2024-10-18 前端开发中操作数组最常用的16个方法
- 2024-10-18 FILTER函数一对多筛选 filter过滤多个条件
- 2024-10-18 Linux 网络层收发包流程及 Netfilter 框架浅析
- 最近发表
- 标签列表
-
- gitpush (61)
- pythonif (68)
- location.href (57)
- tail-f (57)
- pythonifelse (59)
- deletesql (62)
- c++模板 (62)
- css3动画 (57)
- c#event (59)
- linuxgzip (68)
- 字符串连接 (73)
- nginx配置文件详解 (61)
- html标签 (69)
- c++初始化列表 (64)
- exec命令 (59)
- canvasfilltext (58)
- mysqlinnodbmyisam区别 (63)
- arraylistadd (66)
- node教程 (59)
- console.table (62)
- c++time_t (58)
- phpcookie (58)
- mysqldatesub函数 (63)
- window10java环境变量设置 (66)
- c++虚函数和纯虚函数的区别 (66)