在日常工作中,我们经常会遇到这样的需求:左边一列是部门,右边一列是姓名,需要把每个部门的人名合并到一个单元格里。以前的做法是筛选部门、复制姓名、粘贴,再筛选下一个部门,循环往复非常耗时。用TEXTJOIN函数配合IF,一个公式就能全部搞定。
一、准备数据
先把部门和姓名数据整理到A、B两列。A列是部门,B列是姓名。然后在D2、D3、D4分别输入要汇总的三个部门名称:运营部部、产品部、技术部。
二、输入公式
在E2单元格输入以下公式,然后向下填充:
=TEXTJOIN("、",1,IF(A$2:A$9=D2,B$2:B$9,""))

三、公式拆解
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函数需要 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(条件区域=条件, 返回区域, “”))。按部门合并人名从原来的几分钟缩短到几秒钟,数据更新时结果也会自动刷新。掌握这个组合,类似的合并需求都能轻松解决。