2012-10-11 39 views
10

Đây là một câu hỏi đơn giản mà tôi không thể trả lời.Cách căn chỉnh các bản sao trùng lặp trên cùng một hàng trong Excel

Tôi có hai cột như thế này trong Excel:

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

Tôi muốn sắp xếp hai cột để cùng các giá trị được xếp trên các hàng tương tự trong hai cột, chẳng hạn như:

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

Cho đến nay, tôi đã thử các VBA mã sau:

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 

Nhưng mã này ju st giúp tìm các bản sao và không đặt các bản sao trên cùng một hàng trong hai cột.

Tôi tự hỏi các bạn có thể giúp một chút không?

Thanks a lot.

Trả lời

30

mà không cần VBA

  • chèn một cột trống vào cột B
  • trong B1 đặt =IF(ISNA(MATCH(A1,C:C,0)),"",INDEX(C:C,MATCH(A1,C:C,0))) và sao chép xuống
  • sao chép và dán lại cột B trên chính nó như là giá trị để loại bỏ các công thức

Trong 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 
+1

Thật tuyệt vời! Mã VBA của bạn chỉ thực hiện thủ thuật. Rất cảm ơn bạn. –

-1

Nếu không có VBA

  • trong C1 đặt = VLOOKUP (A: A, B: B, 1)
  • nếu bạn có nhiều cột, trong E1 đặt = VLOOKUP (A: , B: D, 2) .... chữ số cuối cùng nên thay đổi thành 1 (col B), 2 (col C) 3 (Col D) cho phù hợp.

Bạn sẽ phải sao chép và dán này đối với từng mảng bạn đang tìm kiếm trong các cột riêng biệt cho phù hợp, nhưng bạn sẽ có thể sao chép và dán xuống một cột một cách dễ dàng

Hope this helps. Vui lòng cho tôi biết nếu bạn có bất kỳ câu hỏi nào

Các vấn đề liên quan