能否基于另一列的取值对指定范围内的员工姓名进行拼接汇总?
按合同类型拼接员工姓名自动更新方案
首先预设你的表格结构:
- 员工姓名存储在A列,A1为表头
姓名,A2起为实际数据 - 合同类型存储在B列,B1为表头
合同类型,B2起为实际数据 - 统计区D列为待统计的合同类型(D2为
永久合同(Permanent)、D3为合同工(Contract)等),E列已用COUNTIFS完成人数统计,需在F列生成逗号分隔的对应姓名列表
方案1(适用于Excel 2019及以上、Excel 365、新版WPS)
直接调用TEXTJOIN函数实现,F2单元格输入以下公式:
=TEXTJOIN(",",TRUE,IF($B$2:$B$10000=D2,$A$2:$A$10000,""))
- 如果你用的是非365版本Excel,输入完公式后需要按
Ctrl+Shift+Enter三键组合触发数组计算 - 公式中的
$B$2:$B$10000和$A$2:$A$10000可根据你的实际最大员工规模调整范围 - 公式逻辑:先筛选所有B列合同类型匹配D2的行,返回对应A列的姓名,再用逗号拼接所有符合条件的姓名,自动忽略空值不会出现多余逗号
方案2(适用于无TEXTJOIN函数的旧版Excel)
用辅助列实现:
- 新增C列为辅助列,C2单元格输入公式,下拉到所有数据行末尾:
=IF(B2=D$2,A2&",","")
- F2单元格输入公式,去掉末尾多余的逗号即可:
=LEFT(PHONETIC(C:C),LEN(PHONETIC(C:C))-1)
统计其他合同类型时,只需修改辅助列C2公式中D$2为对应D列的目标合同类型单元格即可。
两种方案都支持自动更新,修改任意员工的合同类型后,人数统计和姓名列表会同步刷新,符合需求。
内容的提问来源于stack exchange,提问作者mccarthyj
相关产品推荐
相关产品推荐

