Как выровнять дубликаты на одинаковых строках в Excel

Это простой вопрос, на который я не могу ответить.

У меня есть два столбца, подобные этим в Excel:

Col1    Col2
 A       C
 B       I
 C       E
 D       D
 E       A
 F       F
 G       B
 H       
 I       

Я хочу отсортировать два столбца так, чтобы одинаковые значения были выровнены по одинаковым строкам в двух столбцах, например:

Col1    Col2
 A       A
 B       B
 C       C
 D       D
 E       E
 F       F
 G       
 H       
 I       I
 K       

До сих пор я попробовал следующее VBA код:

 Sub HighlightDups()
    Dim i, LastRowA, LastRowB
    LastRowA = Range("A" & Rows.Count).End(xlUp).Row
    LastRowB = Range("B" & Rows.Count).End(xlUp).Row
    Columns("A:A").Interior.ColorIndex = xlNone
    Columns("B:B").Interior.ColorIndex = xlNone
    For i = 1 To LastRowA
        If Application.CountIf(Range("B:B"), Cells(i, "A")) > 0 Then
            Cells(i, "A").Interior.ColorIndex = 36
        End If
    Next
    For i = 1 To LastRowB
        If Application.CountIf(Range("A:A"), Cells(i, "B")) > 0 Then
            Cells(i, "B").Interior.ColorIndex = 36
        End If
    Next
End Sub

Но этот код просто помогает найти дубликаты и не помещает дубликаты в одинаковые строки в двух столбцах.

Интересно, вы, ребята, можете немного помочь?

Большое спасибо.

2 ответа

Решение

без VBA

  • вставить пустой столбец в столбец B
  • в б1 поставь =IF(ISNA(MATCH(A1,C:C,0)),"",INDEX(C:C,MATCH(A1,C:C,0))) и скопировать вниз
  • скопировать и вставить обратно столбец B над собой в качестве значений для удаления формул

В VBA

Sub Macro1()
    Dim rng1 As Range
    Set rng1 = Range([a1], Cells(Rows.Count, "A").End(xlUp))
    rng1.Offset(0, 1).Columns.Insert
    With rng1.Offset(0, 1)
        .FormulaR1C1 = _
        "=IF(ISNA(MATCH(RC[-1],C[1],0)),"""",INDEX(C[1],MATCH(RC[-1],C[1],0)))"
        .Value = .Value
    End With
End Sub

Без VBA

  • в C1 положить =VLOOKUP(A:A,B:B,1)
  • если у вас есть несколько столбцов, в E1 укажите =VLOOKUP(A:A,B:D,2) .... последняя цифра должна измениться на 1(столбец B), 2(столбец C) 3(столбец D) соответственно.

Вам придется скопировать и вставить это для каждого массива, который вы ищете в отдельных столбцах соответственно, но вы должны быть в состоянии легко скопировать и вставить столбец

Надеюсь это поможет. пожалуйста, дай мне знать, если возникнут какие-либо вопросы

Другие вопросы по тегам