Excel整理员工名单时,经常需要把同一部门的多个人名放到一个单元格中。如果逐个部门筛选、复制姓名再粘贴,不仅步骤多,人员变动后还要重新处理。使用TEXTJOIN结合IF,可以直接按照部门自动汇总姓名。
一、按条件合并姓名
假设A列是部门,B列是姓名,D列填写需要查询的部门。在E2输入:
=TEXTJOIN("、",1,IF(A$2:A$9=D2,B$2:B$9,""))
向下填充后,每个部门对应的员工姓名就会自动合并到一个单元格中。

二、这个公式是怎么工作的?
整个公式可以拆成两部分。
IF(A$2:A$9=D2,B$2:B$9,"")负责筛选数据:部门与D2一致时返回对应姓名,不符合条件则返回空值。
TEXTJOIN("、",1,...)再把筛选出来的姓名连接起来。第一个参数指定姓名之间使用顿号分隔,第二个参数为1,表示忽略空白内容。因此,IF负责找人,TEXTJOIN负责合并,两者组合后就能完成按部门汇总姓名。
三、分隔符和条件都可以调整
如果不想使用顿号,可以直接修改分隔符,例如:
=TEXTJOIN(", ",1,IF(A$2:A$9=D2,B$2:B$9,""))
如果还要增加“在职”条件,可以让IF同时判断两个条件:
=TEXTJOIN("、",1,IF((A$2:A$9=D2)*(C$2:C$9="在职"),B$2:B$9,""))
这样只有指定部门且状态为在职的员工才会被合并。

四、使用时注意
TEXTJOIN适用于较新的Excel和WPS版本,如Office 365、Excel 2019及以上版本。如果数据会持续增加,也可以根据实际情况扩大引用范围。掌握TEXTJOIN+IF后,按部门、地区、岗位等条件合并姓名都可以套用同样的思路,数据变化后结果也能同步更新。
评论 (0)