excel两行数据合并成一行,重复数据合并,不同数据合并到同一单元格且保留内容,如图

有9列,2000多行都是每两行数据有一列数据不同,其它列数据相同。
求详细说明如何操作

需要加辅助列(黄色区域)

G2=IF(IF(ISERROR(VLOOKUP(A2,$A3:$G9,COLUMN(B1),)),"",VLOOKUP(A2,$A3:$G9,COLUMN(B1),))=$B2,B2,B2&IF(ISERROR(VLOOKUP(A2,$A3:$G9,7,)),"",","&VLOOKUP(A2,$A3:$G9,7,)))向下向右复制

M2=INDEX(A:A,MIN(IF(COUNTIF(M$1:M1,$A$2:$A$9),4^8,ROW($A$2:$A$9))))&""

数组公式向下复制(这个步骤也可以不用数组公式,用数据-筛选不重复的值)

【数组公式,公式输完后,光标放在公式编辑栏同时按下CTRL+SHIFT+回车键,使数组公式生效】

N2=VLOOKUP($M2,$A$2:$K$9,COLUMN(G1),)向下向右复制

温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-04-10
Sub 数据处理()
   Dim i, k As Integer
   Dim arr, brr
            arr = Range("a3").CurrentRegion
   ReDim brr(1 To UBound(arr), 1 To UBound(arr, 2))
         brr = arr
         For i = 1 To UBound(arr) Step 2
            
         If arr(i, 2) = arr(i + 1, 2) Then
          
            brr(i, 2) = arr(i, 2)
            
        Else
            brr(i, 2) = arr(i, 2) & "," & arr(i + 1, 2)
        End If
        Next
     
        Range("a1").CurrentRegion.Clear
    Range("a1").Resize(UBound(brr), UBound(brr, 2)) = brr
        Range("b:b").Select
        Selection.HorizontalAlignment = xlCenter
        For k = 2 To Range("a" & Cells.Rows.Count).End(xlUp).Row Step 2
            Rows(k).Clear
        Next
End Sub

相似回答