在Excel中,若你希望查找与某个部门相关的所有姓名,并将它们以逗号分隔的形式显示在一个单元格中,如图所示:
使用TEXTJOIN函数结合IF函数和TEXTJOIN函数结合FILTER来实现,看看你会用哪种方法!
一、TEXTJOIN函数结合IF函数
=TEXTJOIN(",", TRUE, IF(A2:A19=E2, B2:B19, ""))
现在我们先拆解一下这公式:
(1)构造IF函数
IF(条件,条件成立返回值,不成立返回值)
输入公式:=IF(A2:A19=E2, B2:B19, "")
按回车,你会看到读取销售部的姓名。
公式的意思是:
用于判断部门区域中的“销售部”是否与E2单元格中的部门相等,如果相等,返回对应的姓名;否则返回空值。
(2)多个单元格的内容放到一个单元格内
在IF函数公式外面包一个TEXTJOIN函数
=TEXTJOIN(",",TRUE,IF(A2:A19=E2,B2:B19,""))
TEXTJOIN的第一个参数是分隔符,这里我们使用逗号“,”。
第二个参数是忽略空值(设置为TRUE)。
第三个参数是要拼接的内容,用IF函数找出来姓名。
(3)针对其他部门的查询:需要对IF函数内的范围进行锁定
公式:=TEXTJOIN(",",TRUE,IF($A$2:$A$19=E2,$B$2:$B$19,""))
用F4锁定:$A$2:$A$19和$B$2:$B$19。
这样,当你将公式向下填充到其他单元格时,引用的范围不会改变。
二、TEXTJOIN函数结合FILTER
(1)FILTER函数进行姓名筛选
=FILTER(显示筛选结果,筛选条件)
输入公式:=FILTER(B:B,A:A=E2)
这个公式会返回B列中所有对应A列值等于E2的单元格的值
(2)将竖向的姓名转置成横向
在FILTER函数外面包一个TRANSPOSE函数
输入公式:=TRANSPOSE(FILTER(B:B,A:A=E2))
(3)多个单元格的内容放到一个单元格内
再加公式外面包一个TEXTJOIN函数
输入公式:=TEXTJOIN(",",TRUE,TRANSPOSE(FILTER(B:B,A:A=E2)))
(4)针对其他部门的查询
只需将公式向下填充到其他单元格即可。
这两种方法各有优势,我还是倾向于TEXTJOIN函数结合IF函数,你会用哪个?
评论 (0)