在日常工作中,我们经常会遇到这样的需求:左边一列是部门,右边一列是姓名,需要把每个部门的人名合并到一个单元格里。以前的做法是筛选部门、复制姓名、粘贴,再筛选下一个部门,循环往复非常耗时。用TEXTJOIN函数配合IF,一个公式就能全部搞定。

一、准备数据

先把部门和姓名数据整理到A、B两列。A列是部门,B列是姓名。然后在D2、D3、D4分别输入要汇总的三个部门名称:运营部部、产品部、技术部。

二、输入公式

在E2单元格输入以下公式,然后向下填充:

=TEXTJOIN("、",1,IF(A$2:A$9=D2,B$2:B$9,""))

TEXTJOIN+IF组合,按部门合并人名不用筛选复制-天天办公网

三、公式拆解

IF部分:IF(A$2:A$9=D2, B$2:B$9, “”) 在A列中逐个比对部门,如果等于D2指定的部门,就把对应的B列姓名取出来;如果对不上,就返回空字符串。这一步实际上完成了一个“筛选”动作。

TEXTJOIN部分:TEXTJOIN(“、”, 1, …) 把IF返回的所有姓名用顿号连接成一个字符串。第二个参数写1,表示自动忽略空字符串,只连接真正取到的姓名,不需要手动清理。

四、更多用法

改用逗号分隔:把公式中的顿号换成逗号即可:

=TEXTJOIN(", ", 1, IF(A$2:A$9=D2, B$2:B$9, ""))

直接引用整列:如果数据会持续增加,可以把区域写成 A:A 和 B:B,公式会自动包含新增行。

TEXTJOIN+IF组合,按部门合并人名不用筛选复制-天天办公网

五、使用注意

版本要求:TEXTJOIN函数需要 WPS最新版 或 Office 365/Excel 2019以上。旧版本没有这个函数,需要用VBA或辅助列实现。

多条件合并:如果需要同时满足两个条件,在IF中用乘号连接:

=TEXTJOIN("、", 1, IF((A$2:A$12=D2)*(C$2:C$12="在职"), B$2:B$12, ""))

六、总结

TEXTJOIN函数的核心是配合IF完成条件筛选和文本合并。记住公式结构:=TEXTJOIN(分隔符, 忽略空值, IF(条件区域=条件, 返回区域, “”))。按部门合并人名从原来的几分钟缩短到几秒钟,数据更新时结果也会自动刷新。掌握这个组合,类似的合并需求都能轻松解决。