Cách dò tìm dữ liệu trùng theo nhiều điều kiện

  • Thread starter Thread starter snst
  • Ngày gửi Ngày gửi
Liên hệ QC

snst

Thành viên hoạt động
Tham gia
9/4/13
Bài viết
106
Được thích
3
Chào các anh chị, em có một sheet dữ liệu gồm nhiều dữ liệu trùng nhau. giờ em muốn dùng hàm để xác định các dữ liệu trùng nhau theo 5 điều kiện là: tên, so to, thua, dien tich, địa chỉ. những thửa trùng nhau cho các màu khác nhau. anh chị nào biết giúp em với. cảm ơn mọi người.
 

File đính kèm

Công thức: =COUNTIFS($A$3:$A$12,$A3,$B$3:$B$12,$B3,$C$3:$C$12,$C3,$D$3:$D$12,$D3,$E$3:$E$12,$E3)

Giả trị nào > 1 là trùng
Theo em, thế này vẫn chưa thỏa mãn yêu cầu của tác giả. Ý của tác giả là những hàng trùng nhau(giống cả 5 tiêu chí) thì tô một màu chứ không phải cứ dòng nào xuất hiện nhiều hơn 1 lần là cùng tô một màu như nhau hết.
 
Sao em sử dụng công ko được anh báo lỗi #NAME? anh.+-+-+-+
 
Có cáh nào làm trên office 2003 cho trường hợp trên của em không mấy anh.-+*/
 
Sao em sử dụng công ko được anh báo lỗi #NAME? anh.+-+-+-+

- Hàm COUNTIFS() chỉ sử dụng được cho Excel 2007 về sau, 2003 không xài được.
- Ví dụ: Dòng 3 trùng với dòng 1000 thì biết màu nó nằm ở đâu mà tìm?
- Excel 2003 chỉ có 56 màu, nếu quá nhiều dữ liệu bị trùng thì .... hết màu để tô.
- Code này xác định dòng nào trùng với những dòng nào, rồi tính sau.
PHP:
Public Sub TimTrung()
Dim Dic As Object, sArr(), dArr(), I As Long, Tem As String
Set Dic = CreateObject("Scripting.Dictionary")
sArr = Range([A3], [A3].End(xlDown)).Resize(, 5).Value
ReDim dArr(1 To UBound(sArr, 1), 1 To 1)
For I = 1 To UBound(sArr, 1)
    Tem = sArr(I, 1) & "#" & sArr(I, 2) & "#" & sArr(I, 3) & "#" & sArr(I, 4) & "#" & sArr(I, 5)
    If Not Dic.Exists(Tem) Then
        Dic.Add Tem, I + 2
    Else
        Dic.Item(Tem) = Dic.Item(Tem) & ";" & I + 2
    End If
Next I
For I = 1 To UBound(sArr, 1)
    Tem = sArr(I, 1) & "#" & sArr(I, 2) & "#" & sArr(I, 3) & "#" & sArr(I, 4) & "#" & sArr(I, 5)
    If InStr(Dic.Item(Tem), ";") Then dArr(I, 1) = Dic.Item(Tem)
Next I
[F3].Resize(UBound(sArr, 1)) = dArr
Set Dic = Nothing
End Sub
 

File đính kèm

Anh Ba Tê chỉ em cách chuyển cái code thành add in với.
 
Anh Ba Tê chỉ em cách chuyển cái code thành add in với.

Hổng hiểu! Từ Sub chuyển thành Add-Ins lỡ sai 1 thao tác nào đó, ví dụ ô hiện hành, khi nào chạy Sub,v.v... tanh bành dữ liệu.
Thay Sub bằng Function để sử dụng tiện lợi cho nhiều tình huống nhé.
PHP:
Public Function GPE(Rng As Range, DK As Range) As String
Dim sArr(), Cll As Range, I As Long, J As Long, Tem As String, Tem2 As String, Dong As String, Rws As Long
sArr = Rng.Value
Rws = Rng.Row - 1
For Each Cll In DK
    Tem = Tem & Cll.Value & "#"
Next Cll
For I = 1 To UBound(sArr, 1)
    Tem2 = Empty
    For J = 1 To UBound(sArr, 2)
        Tem2 = Tem2 & sArr(I, J) & "#"
    Next J
        If Tem2 = Tem Then
            Dong = Dong & I + Rws & ";"
        End If
Next I
Dong = Left(Dong, Len(Dong) - 1)
If InStr(Dong, ";") Then GPE = Dong
End Function

Ô F3 nhập công thức này: =GPE($A$3:$E$12;A3:E3)
Copy xuống
 
Web KT

Bài viết mới nhất

Back
Top Bottom