Công thức tự động loại bỏ trùng lặp trong excel vba

Cách xóa các giá trị trùng lặp khỏi tập dữ liệu trong tất cả các phiên bản Excel. Điều này bao gồm Excel 2003 trở về trước và cả Excel 2007 trở lên

Đối với Excel 2007 trở về sau, chúng ta có thể sử dụng một tính năng đơn giản trong chương trình, nhưng đối với Excel 2003 trở về trước, chúng ta phải sử dụng macro, được cung cấp bên dưới

phần

Loại bỏ các bản sao trong Excel 2007 và các phiên bản mới hơn

Loại bỏ các bản sao trong Excel 2003 và các phiên bản trước đó

ghi chú

Loại bỏ các bản sao trong Excel 2007 và các phiên bản mới hơn

  1. Chọn một ô trong tập dữ liệu có chứa các bản sao
    Công thức tự động loại bỏ trùng lặp trong excel vba
  2. Chuyển đến tab Dữ liệu rồi nhấp vào Xóa trùng lặp
    Công thức tự động loại bỏ trùng lặp trong excel vba
  3. Bây giờ bạn sẽ thấy một cửa sổ nhỏ đang mở.
    (Đồng thời, Excel nên chọn toàn bộ tập dữ liệu, trong ví dụ của chúng tôi là A1. B6; . )
    Trong cửa sổ nhỏ, bạn cần chọn cột muốn kiểm tra trùng lặp. Bạn có thể chọn một cột để kiểm tra hoặc nhiều cột.
    Nếu có tiêu đề hoặc tiêu đề cho dữ liệu của bạn và những tiêu đề đó cũng được Excel chọn, thì hãy nhấp vào hộp kiểm bên cạnh nơi có nội dung Dữ liệu của tôi có tiêu đề.
    Công thức tự động loại bỏ trùng lặp trong excel vba

    Trong ví dụ này, dữ liệu của tôi không có tiêu đề và tôi chỉ muốn tìm kiếm dữ liệu trùng lặp ở Cột A, vì vậy tôi bỏ chọn Cột B rồi nhấn OK.
    Công thức tự động loại bỏ trùng lặp trong excel vba
  4. Excel sẽ loại bỏ các bản sao và bạn sẽ thấy một cửa sổ cho bạn biết có bao nhiêu bản sao đã được loại bỏ
    Công thức tự động loại bỏ trùng lặp trong excel vba
  5. Đây là kết quả cuối cùng
    Công thức tự động loại bỏ trùng lặp trong excel vba

Lưu ý rằng Excel đã xóa toàn bộ hàng dữ liệu chứ không chỉ dữ liệu trong Cột A

Nếu bạn đã chọn Cột A và Cột B ở Bước 3 thì sẽ không có giá trị nào bị xóa. Điều này là do, Excel xem xét tất cả các giá trị trong tất cả các cột đã chọn để xem liệu có các giá trị trùng lặp trên chúng hay không thay vì riêng lẻ trong từng cột. Điều đó rất quan trọng nếu bạn muốn thực hiện loại bỏ trùng lặp phức tạp hơn trong Excel

Nếu bạn mắc lỗi, hãy nhấn Ctrl + Z trên bàn phím để hoàn tác thao tác xóa trùng lặp và bắt đầu lại

Loại bỏ các bản sao trong Excel 2003 và các phiên bản trước đó

Để loại bỏ các giá trị trùng lặp khỏi Excel 2003 và các phiên bản cũ hơn, chúng ta cần sử dụng Macro

Sau đây là các bước cài đặt và sử dụng macro

  1. Khi ở trong Excel, nhấn Alt + F11 để chuyển đến cửa sổ VBA Editor
    Công thức tự động loại bỏ trùng lặp trong excel vba
  2. Vào Chèn > Mô-đun
    Công thức tự động loại bỏ trùng lặp trong excel vba

  3. Bây giờ bạn sẽ thấy một cửa sổ nhỏ mở ra và đó là nơi chúng tôi sẽ nhập macro
    Công thức tự động loại bỏ trùng lặp trong excel vba
  4. Trong cửa sổ đó, sao chép và dán macro này.
    Public Sub DeleteDuplicateRows()
    ' This macro will delete all duplicate rows which reside under
    ' the first occurrence of the row.
    '
    'Use the macro by selecting a column to check for duplicates
    'and then run the macro and all duplicates will be deleted, leaving
    'the first occurrence only.
    
    Dim R As Long
    Dim N As Long
    Dim V As Variant
    Dim Rng As Range
    
    On Error GoTo EndMacro
    
    Application.ScreenUpdating = False
    Application.Calculation = xlCalculationManual
    
    Set Rng = Application.Intersect(ActiveSheet.UsedRange, _
                        ActiveSheet.Columns(ActiveCell.Column))
    
    Application.StatusBar = "Processing Row: " & Format(Rng.Row, "#,##0")
    
    N = 0
    
    For R = Rng.Rows.Count To 2 Step -1
    
        If R Mod 500 = 0 Then
        
            Application.StatusBar = "Processing Row: " & Format(R, "#,##0")
        
        End If
        
        V = Rng.Cells(R, 1).Value
        
        If V = vbNullString Then
        
            If Application.WorksheetFunction.CountIf(Rng.Columns(1), vbNullString) > 1 Then
        
                Rng.Rows(R).EntireRow.Delete
        
                N = N + 1
        
            End If
        
        Else
        
            If Application.WorksheetFunction.CountIf(Rng.Columns(1), V) > 1 Then
        
                Rng.Rows(R).EntireRow.Delete
        
                N = N + 1
        
            End If
        
        End If
    
    Next R
    
    EndMacro:
    
    Application.StatusBar = False
    Application.ScreenUpdating = True
    Application.Calculation = xlCalculationAutomatic
    MsgBox "Duplicate Rows Deleted: " & CStr(N)
    
    End Sub
    
    
  5. Bây giờ nó sẽ giống như thế này.
    Công thức tự động loại bỏ trùng lặp trong excel vba

    (Nếu có sự cố khi thực hiện sao chép/dán từ trang web này, hãy đảm bảo rằng các dấu ngoặc đơn phía trước văn bản màu xanh lá cây thực sự là các dấu ngoặc đơn thông thường cơ bản; bạn có thể thực hiện việc này bằng cách xóa . Hoặc, chỉ cần tải xuống tệp mẫu đính kèm với hướng dẫn này và sao chép macro từ đó. )
  6. Nhấn Alt + F11 để quay lại cửa sổ Excel và chọn một ô trong cột chứa các giá trị trùng lặp mà bạn muốn xóa
    Công thức tự động loại bỏ trùng lặp trong excel vba
  7. Nhấn Alt + F8 để xem macro
    Công thức tự động loại bỏ trùng lặp trong excel vba
  8. Chọn cái có tên DeleteDuplicateRows rồi nhấn nút Run. Khi bạn làm điều đó, một cửa sổ nhỏ sẽ xuất hiện cho bạn biết có bao nhiêu bản sao đã bị xóa
    Công thức tự động loại bỏ trùng lặp trong excel vba
  9. Nhấn OK và bạn đã hoàn tất
    Công thức tự động loại bỏ trùng lặp trong excel vba

Phương pháp này hoạt động khá giống nhau, mặc dù không mạnh bằng tính năng Xóa trùng lặp cho Excel 2007 trở lên

Bạn không thể "hoàn tác" hành động này bằng cách nhấn Ctrl + Z hoặc bất kỳ thao tác nào khác, vì vậy, hãy lưu ý rằng bất cứ điều gì macro xóa đều không thể đảo ngược. Sao lưu dữ liệu gốc được tạo trước khi chạy bất kỳ macro nào trong trường hợp xảy ra lỗi

Nếu bạn muốn giữ macro này trong sổ làm việc của mình, hãy đảm bảo lưu sổ làm việc ở định dạng tương thích với macro;

Làm theo hướng dẫn này để chạy macro khi bạn bấm vào một nút trong trang tính

ghi chú

Nếu bạn đang sử dụng Excel 2007 trở lên, hãy sử dụng phương pháp tích hợp sẵn để loại bỏ các mục trùng lặp vì nó dễ dàng hơn nhiều so với việc phải cài đặt macro và vì bạn có thể hoàn tác hành động nếu mắc lỗi

Nếu bạn sử dụng macro, bạn không thể hoàn tác bất kỳ thay đổi nào mà nó thực hiện đối với trang tính;

Hãy cẩn thận khi xóa các mục trùng lặp trên bảng tính có nhiều dữ liệu trải rộng khắp trang tính vì việc này có thể xóa dữ liệu ở bên phải hoặc bên trái tập dữ liệu hiện tại của bạn. Điều tốt nhất cần làm là có một trang tính riêng chỉ chứa dữ liệu mà bạn muốn kiểm tra các bản sao. Bằng cách này, bạn chắc chắn không gây rối với bất kỳ dữ liệu nào khác

Đảm bảo tải xuống bảng tính đi kèm cho hướng dẫn này. Nó chứa macro được liệt kê ở đây và một số dữ liệu mẫu để bạn thử mọi thứ

Excel có thể tự động loại bỏ công thức trùng lặp không?

Trong Excel, có một số cách để lọc các giá trị duy nhất—hoặc loại bỏ các giá trị trùng lặp. Để lọc các giá trị duy nhất, hãy nhấp vào Dữ liệu > Sắp xếp & Lọc > Nâng cao. Để xóa các giá trị trùng lặp, hãy nhấp vào Dữ liệu > Công cụ dữ liệu > Xóa giá trị trùng lặp .

Công thức để loại bỏ các bản sao trong Excel là gì?

Tìm và xóa trùng lặp .
Chọn các ô bạn muốn kiểm tra trùng lặp. .
Nhấp vào Trang chủ > Định dạng có điều kiện > Đánh dấu quy tắc ô > Giá trị trùng lặp
Trong hộp bên cạnh giá trị bằng, hãy chọn định dạng bạn muốn áp dụng cho các giá trị trùng lặp, rồi bấm OK

Làm cách nào bạn có thể tự động xóa các ô trùng lặp khỏi dữ liệu của mình?

Bây giờ hãy thực hiện các bước sau để xóa các giá trị trùng lặp. .
Chọn phạm vi ô có giá trị trùng lặp mà bạn muốn xóa
Tiếp theo, tìm tùy chọn 'Remove Duplicates' và chọn nó. Tab dữ liệu → phần Công cụ dữ liệu → Xóa trùng lặp
Trong phần Cột, hãy chọn hoặc bỏ chọn các cột mà bạn muốn loại bỏ các cột trùng lặp