Excel把重复的a列合并在一起把对应的b列放在a列后,求详细步骤

VBA代码或者数据透视都可以
2025年03月23日 08:26
有5个网友回答
网友(1):

如图,模拟了12行数据(加标题到第13行),自己根据实际数据修改公式中的行号。

E列列出A列不重复项:

E2=INDEX(A:A,MATCH(,COUNTIF(E$1:E1,A$2:A$14),)+1)&""

同时按Ctrl+Shift+Enter三键输入数组公式,下拉到出现空白单元格

E列右侧列出对应项:

F2=INDEX($B:$B,SMALL(IF($A$2:$A$13=$E2,ROW($2:$13),4^8),COLUMN(A:A)))&""

同时按Ctrl+Shift+Enter三键输入数组公式,下拉到与E列数据平齐,右拉到所有行出现空白单元格。

网友(2):

如图

D2=IFERROR(INDEX(A:A,SMALL(IF(MATCH($A$1:$A$999&"",$A$1:$A$999&"",)=ROW($1:$999),ROW($1:$999)),ROW(2:2)),)&"","")

数组公式,按CTRL+SHIFT+回车结束,下拉填充

E2=IF($D2="","",IFERROR(INDEX($B:$B,SMALL(IF($A$1:$A$999=$D2,ROW($1:$999)),COLUMN(A:A)),),""))

数组公式,按CTRL+SHIFT+回车结束,右拉填充,下拉填充

网友(3):

Sub s()
    arr = UsedRange
    UsedRange.ClearContents
    Set d = CreateObject("scripting.dictionary")
    c = 1
    For i = 1 To UBound(arr)
        If d.exists(arr(i, 1)) Then
            Cells(d(arr(i, 1)), Cells(d(arr(i, 1)), Columns.Count).End(xlToLeft).Column + 1) = arr(i, 2)
        Else
            d(arr(i, 1)) = c
            Cells(c, 1) = arr(i, 1)
            Cells(c, 2) = arr(i, 2)
            c = c + 1
        End If
    Next
End Sub

网友(4):

  1. 先按照a列进行排序,保证重复的内容都排在一起,然后在C2单元格输入如下公式:

  2. =IF(OFFSET($A2,COLUMN(A2),0)=$A2,OFFSET($B2,COLUMN(A2),0),"")

  3. 将该公式向右拉很多列,再向下填充,并检查是否公式最后一列结果全部为空白,否则继续向右填充直到最右列全部显示空白

  4. 贴值

  5. 按ctrl+A选中整个有数据的区域,删除重复项,仅勾选第一列,点删除重复项

  6. 得到楼主要的结果

网友(5):

在C1输入公式:

=INDEX(A:A,SMALL(IF(MATCH(A$1:A$10000,A$1:A$10000,)=ROW($1:$10000),ROW($1:$10000),65536),ROW()))&""
公式以CTRL+SHIFT+ENTER三键结束。
将公式向下复制。
在D1输入公式:
=INDEX($B$B,SMALL(IF($A$1:$A$10000=$C1,ROW($1:$10000),65536),COLUMN(A1)))&""
公式以CTRL+SHIFT+ENTER三键结束。
将公式向右向下复制。