
Gửi bởi
minhtien0408
Cám ơn anh Gtri
Nhưng trường hợp này thì nó lại không ra kết quả ( anh xem file đính kèm ) , anh có thể giúp em được không. Cám ơn anh nhiều [IMG]images/smilies/a44.gif[/IMG]
Có lẽ với nguồn dữ liệu lớn thì kết quả chỉ là gần đúng
Xem file đính kèm, nhấn "lọc gần đúng"
Dữ liệu tại cột A, kết quả dán vào cột D
Mã:
Public Sub Tim_Cau_Hoan_Chinh()
Dim DL, Tam, kq(), r As Long, rw As Long, c As Long
DL = Sheet1.Range("A1").CurrentRegion
For r = 1 To UBound(DL)
Tam = Split(DL(r, 1), " ")
For rw = 1 To UBound(DL)
If rw <> r Then
For c = 0 To UBound(Tam)
If InStr(UCase(DL(rw, 1)), UCase(Tam(c))) Then
Tam(c) = ""
End If
Next c
If Len(Application.Trim(Join(Tam))) = 0 Then DL(r, 1) = ""
End If
Next rw
Next r
ReDim kq(1 To UBound(DL), 1 To 1)
rw = 0
For r = 1 To UBound(DL)
If DL(r, 1) <> "" Then
rw = rw + 1
kq(rw, 1) = DL(r, 1)
End If
Next r
Sheet1.Range("D1", Sheet1.Range("D65000").End(xlUp)).Clear
Sheet1.Range("D1").Resize(rw, 1).Value = kq
End Sub