Đếm trùng lặp bằng vba trong excel

Bạn cần phải đếm xem có bao nhiêu giá trị lặp lại trong 2 range nào đó hoặc đếm xem có bao nhiêu giá trị lặp lại trong 2 mảng khác nhau. Bạn sẽ cần phải sử dụng đến đoạn code dưới đây để giải quyết vấn đề.


Function đếm trùng lặp cho 2 array:

Public Function DemTrungLap(Arr1 As Variant, Arr2 As Variant) As Long

    Dim varElement As Variant

    On Error Resume Next
    For Each varElement In Arr1
        'lMatch = 0
        'lMatch = Application.Match(varElement, arr2, 0)
        If Not IsError(Application.Match(varElement, Arr2, 0)) Then
            DemTrungLap = DemTrungLap + 1
        End If
    Next varElement
    On Error GoTo 0

End Function

Function đếm trùng lặp cho 2 range:

Public Function DemTrungLap(Arr1 As range, Arr2 As range) As Long

    Dim varElement As range
  
    On Error Resume Next
    For Each varElement In Arr1
        If Not IsError(Application.Match(varElement, Arr2, 0)) Then
            DemTrungLap = DemTrungLap + 1
        End If
    Next varElement
    On Error GoTo 0

End Function

Chú ý: Trong nhiều tường hợp để đếm trùng lặp chính xác thì cần phải chọn một chuỗi có giá trị duy nhất đi đếm với chuổi có nhiều giá trị trùng lặp trong chính chuỗi đó.


Đăng nhận xét

0 Nhận xét