excel 如何将A列相同的数据所对应的B列多行数据合并至一行
表格样式如下:IDPEOPLE001张一001刘二001王三002王四002王五003赵六如何可以实现:001张一刘二王三002王四王五003赵六数据量大,各ID的个数没...
表格样式如下:
ID PEOPLE
001 张一
001 刘二
001 王三
002 王四
002 王五
003 赵六
如何可以实现:
001 张一刘二王三
002 王四王五
003 赵六
数据量大,各ID的个数没有定值。 展开
ID PEOPLE
001 张一
001 刘二
001 王三
002 王四
002 王五
003 赵六
如何可以实现:
001 张一刘二王三
002 王四王五
003 赵六
数据量大,各ID的个数没有定值。 展开
4个回答
展开全部
数据在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+回车三键确定输入,鼠标移到单元格右下角,当出现一个黑色小十字时,同时按住鼠标左键往右拖动,再往下拖动
就会得出你想要的效果
在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+回车
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列中第二个数
以此类推
然后用"&"将它们连在一起
按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输入公式
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输入公式
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询