需求:按任务名称,合并参与人员,并用逗号隔开。

思路:
先取消合并的单元格,并按相同的任务名称,填充取消后的空单元格。再判断当前行的任务名称是否与上一行相同。如果相同,合并后的人员与上一行也相同;如果不相同,需要对相同任务名称的人员进行拼接。
由于已经在不同的文章中对每一步进行了详细的解释,所以这里只说重点。需要了解详情,请在合集中查看。操作步骤如下:
1.取消合并单元格并填充。

2.在C5单元格中输入以下函数,并填充至C14。

函数如下:
=IF(A5<>A4,TEXTJOIN(",",TRUE,INDIRECT("b"&MATCH(A5,A:A,0)&":b"&MATCH(A5,A:A,0)+COUNTIF(A:A,A5)-1)),C4)
解释:如果A5不等于A4,按区域拼接文本,并用",“分隔;如果A5等于A4,那么C5取C4的值。
使用INDIRECT函数,获取需要拼接文本的单元格区域。公式分解:
MATCH(A5,A:A,0)//任务1第一次出现的位置(行号),5 "b"&MATCH(A5,A:A,0)//b5 COUNTIF(A:A,A5)//一共有多少个任务1,3 MATCH(A5,A:A,0)+COUNTIF(A:A,A5)-1//5+3-1,为什么要减1?是为了计算出最后出现任务1的行号 ":b"&MATCH(A5,A:A,0)+COUNTIF(A:A,A5)-1//:b7 INDIRECT("b"&MATCH(A5,A:A,0)&":b"&MATCH(A5,A:A,0)+COUNTIF(A:A,A5)-1)//INDIRECT("b5:b7")
3.删除重复值

至此,已经实现了需求。
(END)