EXCEL判断第一列如果相同,则合并第二列中的值到一个单元格,中间用逗号隔开

2024-11-24 05:52:00
推荐回答(5个)
回答1:

假定原数据在A、B两列

C1

=IF(COUNTIF(A$1:A1,A1)>1,"",A1)   下拉填充

D1

=IF(COUNTIF(A$1:A1,A1)>1,"",SUBSTITUTE(SUBSTITUTE(PHONETIC(OFFSET(A1,,,COUNTIF(A:A,A1),2)),A1,","),",","",1))   下拉填充

回答2:

新工作表A2以下公式,然后下拉。
a2=LOOKUP(1,0/NOT((COUNTIF($A$1:A1,sheet1!$A$2:$A$1000))+ISBLANK(sheet1!$A$2:$A$1000)),sheet1!$A$2:$A$1000) 下拉生成原表A列不重复项
新工作C2 数组公式,三键输入
c2=INDEX(sheet1!$B:$B,(SMALL((sheet1!$A$1:$A$1000<>$A2)/1%%+ROW($1:$1000),COLUMN(A$1))))&""
上面公式,右拉出现A列所有配匹项,下拉完成所有新工作表A列的匹配值。
最后你的A列完成,而对应CDEF列就是你的想要的B列的值,你需要做的,就是将BCD合并为一列就可以了。最后B2输入公式后下拉,
b2=CONCATENATE(b2,B2,C2,d2,e2,f3,g2,h2)
因为EXCEL目前没有数组合并为一个值的公式,所以以下行不通。
=合并( INDEX(sheet1!$B:$B,(SMALL((sheet1!$A$1:$A$1000<>$A2)/1%%+ROW($1:$1000),COLUMN(A$1:$H1))))&"")

回答3:

建议先对左边进行排序,然后把一样的用CONCATENATE来合并右边的单元格,但逗号要自己输入。

回答4:

第一步:C2输入:=IF(A2=A3,"",A2)    

第二步:D2输入:=B2    

第三步:C3输入:=IF(A3=A4,"",A3)    

第四步:D3输入:=IF(A3=A2,D2&","&B3,B3)    

第五步:双击快速填充    

第六步:筛选C列中非空白项    

如果要看动图的话你可以看一下这个链接。

网页链接

回答5:

这个答案的前提是A列是排好序的,有没有A列乱序时的做法?