Tìm kiếm các ô trùng nhau trong nhiều cột

Liên hệ QC

fan.8051

Thành viên mới
Tham gia
29/3/12
Bài viết
13
Được thích
0
Tình hình là em có bảng số liệu như trong hình, vấn đề là kiểm tra các ô trong cột G có trùng nhau không, nếu có thì chiếu sang cột K xem dữ liệu tương ứng có trùng nhau không ? Nếu trùng thì tô màu lại để đánh dấu, không trùng thi thôi.
VD: các ô G9,12,15,17 trùng tên nhau nhung khi chiếu qua cột K, thì K9,12,17 là trùng nhau nên ta tô màu lại, còn K15 ko trùng nên ta giữ nguyên



1.jpg
 
Tình hình là em có bảng số liệu như trong hình, vấn đề là kiểm tra các ô trong cột G có trùng nhau không, nếu có thì chiếu sang cột K xem dữ liệu tương ứng có trùng nhau không ? Nếu trùng thì tô màu lại để đánh dấu, không trùng thi thôi.
VD: các ô G9,12,15,17 trùng tên nhau nhung khi chiếu qua cột K, thì K9,12,17 là trùng nhau nên ta tô màu lại, còn K15 ko trùng nên ta giữ nguyên



View attachment 136121
Nếu bài không bị xóa:
Cái này thêm cột phụ rồi dùng CF chắc là được
Có file đính kèm sẽ nhanh hơn
 
Tình hình là em có bảng số liệu như trong hình, vấn đề là kiểm tra các ô trong cột G có trùng nhau không, nếu có thì chiếu sang cột K xem dữ liệu tương ứng có trùng nhau không ? Nếu trùng thì tô màu lại để đánh dấu, không trùng thi thôi.
VD: các ô G9,12,15,17 trùng tên nhau nhung khi chiếu qua cột K, thì K9,12,17 là trùng nhau nên ta tô màu lại, còn K15 ko trùng nên ta giữ nguyên



View attachment 136121
Up cả File lên đi cho mọi người cùng thực hành luôn. Như thế sẽ giúp bạn được dễ dàng hơn. Không có File làm thử thấy cứ thiếu thiếu sao ấy.
 
bạn hãy chọn G3:K406 và conditional formatting với rule, formula
=COUNTIFS($G$3:$G$406,$G3,$K$3:$K$406,$K3)>1
và chọn màu thích hợp
 
Tình hình là em có bảng số liệu như trong hình, vấn đề là kiểm tra các ô trong cột G có trùng nhau không, nếu có thì chiếu sang cột K xem dữ liệu tương ứng có trùng nhau không ? Nếu trùng thì tô màu lại để đánh dấu, không trùng thi thôi.
VD: các ô G9,12,15,17 trùng tên nhau nhung khi chiếu qua cột K, thì K9,12,17 là trùng nhau nên ta tô màu lại, còn K15 ko trùng nên ta giữ nguyên



View attachment 136121
Code cùi:
[GPECODE=vb]Sub Tomau1()
Dim Dic As Object
Dim rng As Range
Set Dic = CreateObject("Scripting.Dictionary")
For Each rng In Range([G3], [G65536].End(xlUp))
If rng <> "" Then
If Not Dic.exists(rng.Value & rng.Offset(, 4).Value) Then
Dic.Add rng.Value & rng.Offset(, 4).Value, Empty
Else
Union(rng, rng.Offset(, 4)).Interior.ColorIndex = 6
End If
End If
Next
Dic.RemoveAll
For Each rng In Range([G3], [G65536].End(xlUp))
If rng.Interior.ColorIndex = 6 Then
If Not Dic.exists(rng.Value & rng.Offset(, 4).Value) Then
Dic.Add rng.Value & rng.Offset(, 4).Value, Empty
End If
End If
Next
For Each rng In Range([G3], [G65536].End(xlUp))
If rng.Interior.ColorIndex <> 6 Then
If Dic.exists(rng.Value & rng.Offset(, 4).Value) Then
Union(rng, rng.Offset(, 4)).Interior.ColorIndex = 6
End If
End If
Next
End Sub[/GPECODE]
 
Lại phải học thêm VBA nữa rồi :D hic
 
Code cùi:
[GPECODE=vb]Sub Tomau1()
Dim Dic As Object
Dim rng As Range
Set Dic = CreateObject("Scripting.Dictionary")
For Each rng In Range([G3], [G65536].End(xlUp))
If rng <> "" Then
If Not Dic.exists(rng.Value & rng.Offset(, 4).Value) Then
Dic.Add rng.Value & rng.Offset(, 4).Value, Empty
Else
Union(rng, rng.Offset(, 4)).Interior.ColorIndex = 6
End If
End If
Next
Dic.RemoveAll
For Each rng In Range([G3], [G65536].End(xlUp))
If rng.Interior.ColorIndex = 6 Then
If Not Dic.exists(rng.Value & rng.Offset(, 4).Value) Then
Dic.Add rng.Value & rng.Offset(, 4).Value, Empty
End If
End If
Next
For Each rng In Range([G3], [G65536].End(xlUp))
If rng.Interior.ColorIndex <> 6 Then
If Dic.exists(rng.Value & rng.Offset(, 4).Value) Then
Union(rng, rng.Offset(, 4)).Interior.ColorIndex = 6
End If
End If
Next
End Sub[/GPECODE]



kiểu này em lại học thêm VBA nữa rồi !!!! hic
 
VBA rất lợi, bạn chỉ cần biết sử dụng VBA cơ bản để áp dụng Code vào bảng tính thôi là được (Nếu mà biết càng sâu càng tốt).

Em trước giờ toàn dùng C, gio thấy VB nó cứ rối rối thế nào !!!!! Bác có tài liệu nào VBA sơ đẳng nhất ko ? share cho em với.
 
Code cùi:
[GPECODE=vb]Sub Tomau1()
Dim Dic As Object
Dim rng As Range
Set Dic = CreateObject("Scripting.Dictionary")
For Each rng In Range([G3], [G65536].End(xlUp))
If rng <> "" Then
If Not Dic.exists(rng.Value & rng.Offset(, 4).Value) Then
Dic.Add rng.Value & rng.Offset(, 4).Value, Empty
Else
Union(rng, rng.Offset(, 4)).Interior.ColorIndex = 6
End If
End If
Next
Dic.RemoveAll
For Each rng In Range([G3], [G65536].End(xlUp))
If rng.Interior.ColorIndex = 6 Then
If Not Dic.exists(rng.Value & rng.Offset(, 4).Value) Then
Dic.Add rng.Value & rng.Offset(, 4).Value, Empty
End If
End If
Next
For Each rng In Range([G3], [G65536].End(xlUp))
If rng.Interior.ColorIndex <> 6 Then
If Dic.exists(rng.Value & rng.Offset(, 4).Value) Then
Union(rng, rng.Offset(, 4)).Interior.ColorIndex = 6
End If
End If
Next
End Sub[/GPECODE]


Bac hung2412 ơi ! cái code này chạy đúng không vậy ?
 
Tình hình là em có bảng số liệu như trong hình, vấn đề là kiểm tra các ô trong cột G có trùng nhau không, nếu có thì chiếu sang cột K xem dữ liệu tương ứng có trùng nhau không ? Nếu trùng thì tô màu lại để đánh dấu, không trùng thi thôi.
VD: các ô G9,12,15,17 trùng tên nhau nhung khi chiếu qua cột K, thì K9,12,17 là trùng nhau nên ta tô màu lại, còn K15 ko trùng nên ta giữ nguyên



View attachment 136121

Thử với code này xem sao.
PHP:
Public Sub GPE()
Dim Dic As Object, sArr(), I As Long, Tem As String, Rng As Range, Cll As Range
Set Dic = CreateObject("Scripting.Dictionary")
Set Rng = Range("G3:K" & [K65536].End(xlUp).Row)
sArr = Rng.Value
For I = 1 To UBound(sArr, 1)
    Tem = sArr(I, 1) & "#" & sArr(I, 5)
    If Not Dic.Exists(Tem) Then
        Dic.Add Tem, 2
    Else
        Dic.Item(Tem) = Dic.Item(Tem) + 1
    End If
Next I
For Each Cll In Rng
    Tem = Cll.Value & "#" & Cll.Offset(, 4).Value
    If Dic.Item(Tem) > 2 Then Cll.Offset(, -6).Resize(, 21).Interior.ColorIndex = Dic.Item(Tem)
Next Cll
Set Dic = Nothing
Set Rng = Nothing
End Sub
Những dòng bị trùng 2 lần màu khác, 3 lần màu khác...
Auto Filter theo màu để kiểm tra nhé.
Tặng thêm 1 code xóa màu đã tô
PHP:
Public Sub XoaMau()
Range("A3:U" & [K65536].End(xlUp).Row).Interior.ColorIndex = 0
End Sub
 

File đính kèm

Web KT

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

Back
Top Bottom