excel 如何将A列相同的数据所对应的B列多行数据合并至一行 EXCEL中如何将A列相同数据所对应的B列数据合并为一个单元...

作者&投稿:徐苗 (若有异议请与网页底部的电邮联系)
数据在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+回车三键确定输入,鼠标移到单元格右下角,当出现一个黑色小十字时,同时按住鼠标左键往右拖动,再往下拖动

就会得出你想要的效果

第一行是标题

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+回车

=INDEX($B:$B,SMALL(IF($A$2:$A$7=$A2,ROW($B$2:$B$7)),1))&INDEX($B:$B,SMALL(IF($A$2:$A$7=$A2,ROW($B$2:$B$7)),2))&INDEX($B:$B,SMALL(IF($A$2:$A$7=$A2,ROW($B$2:$B$7)),3))&INDEX($B:$B,SMALL(IF($A$2:$A$7=$A2,ROW($B$2:$B$7)),4))
按ctrl+shift+enter结束
公式含义:
INDEX($B:$B,SMALL(IF($A$2:$A$7=$A2,ROW($B$2:$B$7)),1))是取出该数组中重名“001”中对应B列中第一个数
INDEX($B:$B,SMALL(IF($A$2:$A$7=$A2,ROW($B$2:$B$7)),2))是取出该数组中重名“001”中对应B列中第二个数
以此类推
然后用"&"将它们连在一起

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输入公式

如何将excel表格中的两列数据相同的排列在一行~

1.选择A2 到C5 即第一个数据块
选择工具栏的【排序和筛选】=> 升序


2.同样选择D2到F5 即第二个数据块
选择工具栏的【排序和筛选】=> 升序

OK

做个样表,详见截图
第1步,把不重复的A列数据放到D列
第2步,把A列相同B列不同的B列数据提取到对应行
F2输入
=INDEX($B:$B,SMALL(IF($A$2:$A$100=$D2,ROW($2:$100),4^8),COLUMN(A1)))&""
数组公式,先按住CTRL+SHIFT,最后回车
公式右拉下拉
第3步,把提取的数据放到一个单元格
E2输入
=F2&" "&G2&" "&H2&" "&I2&" "&J2&" "&K2
公式下拉
可以隐藏F:J列