在Excel中,若你希望查找与某个部门相关的所有姓名,并将它们以逗号分隔的形式显示在一个单元格中,如图所示:

excel多个单元格内容合并,IF与FILTER函数你会选哪个?-趣帮office教程网

使用TEXTJOIN函数结合IF函数和TEXTJOIN函数结合FILTER来实现,看看你会用哪种方法!

一、TEXTJOIN函数结合IF函数

=TEXTJOIN(",", TRUE, IF(A2:A19=E2, B2:B19, ""))

excel多个单元格内容合并,IF与FILTER函数你会选哪个?-趣帮office教程网

现在我们先拆解一下这公式:

(1)构造IF函数

IF(条件,条件成立返回值,不成立返回值)

输入公式:=IF(A2:A19=E2, B2:B19, "")

excel多个单元格内容合并,IF与FILTER函数你会选哪个?-趣帮office教程网

按回车,你会看到读取销售部的姓名。

公式的意思是:

用于判断部门区域中的“销售部”是否与E2单元格中的部门相等,如果相等,返回对应的姓名;否则返回空值。

(2)多个单元格的内容放到一个单元格内

在IF函数公式外面包一个TEXTJOIN函数

=TEXTJOIN(",",TRUE,IF(A2:A19=E2,B2:B19,""))

excel多个单元格内容合并,IF与FILTER函数你会选哪个?-趣帮office教程网

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。

这样,当你将公式向下填充到其他单元格时,引用的范围不会改变。

excel多个单元格内容合并,IF与FILTER函数你会选哪个?-趣帮office教程网

二、TEXTJOIN函数结合FILTER

(1)FILTER函数进行姓名筛选

=FILTER(显示筛选结果,筛选条件)

输入公式:=FILTER(B:B,A:A=E2)

这个公式会返回B列中所有对应A列值等于E2的单元格的值

excel多个单元格内容合并,IF与FILTER函数你会选哪个?-趣帮office教程网

(2)将竖向的姓名转置成横向

在FILTER函数外面包一个TRANSPOSE函数

输入公式:=TRANSPOSE(FILTER(B:B,A:A=E2))

excel多个单元格内容合并,IF与FILTER函数你会选哪个?-趣帮office教程网

(3)多个单元格的内容放到一个单元格内

再加公式外面包一个TEXTJOIN函数

输入公式:=TEXTJOIN(",",TRUE,TRANSPOSE(FILTER(B:B,A:A=E2)))

excel多个单元格内容合并,IF与FILTER函数你会选哪个?-趣帮office教程网

(4)针对其他部门的查询

只需将公式向下填充到其他单元格即可。

excel多个单元格内容合并,IF与FILTER函数你会选哪个?-趣帮office教程网

这两种方法各有优势,我还是倾向于TEXTJOIN函数结合IF函数,你会用哪个?