excel 如何将A列相同的数据所对应的B列多行数据合并至一行

2025-01-08 02:36:51
推荐回答(4个)
回答1:

数据在A列和B列
在C1输入公式
=INDEX(A:A,SMALL(IF(MATCH($A$1:$A$2000&"",$A$1:$A$2000&"",0)=ROW($A$1:$A$2000),ROW($A$1:$A$2000),4^8),ROW(A1)))
数组公式,按CTRL+SHIFT+回车三键确定输入,鼠标移到单元格右下角,当出现一个黑色小十字时,同时按住鼠标左键往下拖动
然后在D1输入公式
=INDEX($B:$B,SMALL(IF($A$1:$A$2000=$C1,ROW($A$1:$A$2000),4^8),COLUMN(A1)))
数组公式,按CTRL+SHIFT+回车三键确定输入,鼠标移到单元格右下角,当出现一个黑色小十字时,同时按住鼠标左键往右拖动,再往下拖动
就会得出你想要的效果

回答2:

举例
=sumif(a:a,"联想",b:b)
意思就是把a列为联想的b列数据相加
c2输入公式
=if(countif(a$2:a2,a2)=1,phonetic(offset(b2,,,max(if(a2:a30=a2,row(2:30)))-row()+1,)),"")
数组公式以ctrl+shift+enter三键组合结束输入
公式下拉

回答3:

第一行是标题
C2:{=IF(MAX(IF($A2=$A$1:$A1,ROW($A$1:$A1)))=0,"",INDEX(C:C,MAX(IF($A2=$A$1:$A1,ROW($A$1:$A1)))))&$B2}
下拉
E1=ID
E2:{=OFFSET($A$1,MATCH(0,MMULT(--TRANSPOSE(TRANSPOSE($A$1:$A$1000)=E$1:E1),ROW(INDIRECT("1:"&ROW()-1))/ROW(INDIRECT("1:"&ROW()-1))),0)-1,0,1,1)}
F2:{=INDEX(C:C,MAX(IF($E2=$A$1:$A$1000,ROW($A$1:$A$1:$A$1000))))}
下拉
都是数组公式,不输{},输完公式不按回车,按CTRL+SHIFT+回车

回答4:

C2=INDEX($A$2:$A$1000,MATCH(0,COUNTIF($C$1:C1,$A$2:$A$1000),))&"向下填充公式
D2=INDEX($B$2:$B$1000,SMALL(IF(COUNTIF($C2,$A$2:$A$1000),ROW($A$2:$A$1000),4^8),COLUMN(A1))-1)&""向右再向下填充公式
以上都要CTRL+SHIFT+ENTER输入公式