Xác định khung thời gian trùng lặp
Nếu bạn muốn tìm ra hàng trùng lặp có nhiều mục nhập cho cùng một người và bạn muốn tìm ra các mục trùng lặp thì bạn không nên bỏ qua bài viết này. Chúng tôi sẽ cung cấp mã macro để giúp bạn xác định các hàng trùng lặp. Trong bài này, chúng ta sẽ học cách tìm các hàng trùng lặp dựa trên cột cụ thể .
Câu hỏi: Tôi có một bảng tính với nhiều mục nhập đóng dấu thời gian cho mọi người. Những người này có thể đồng hồ đến hoặc đi ở nhiều nơi cùng một lúc. Cố gắng viết công thức hoặc macro (không chắc cái nào đạt được mục đích tốt nhất trong trường hợp này) sẽ tìm kiếm dữ liệu và đánh dấu bằng các dòng màu đỏ với thời gian trùng lặp cho một người cụ thể. Điều này có thể thực hiện được không và có phải ai đó có thể giúp tôi không? Cảm ơn nhiều.
Câu hỏi gốc có thể được tìm thấy tại đây
Sau đây là ảnh chụp trước trang tính:
Sau đây là ảnh chụp của after sheet:
Để lấy mã; chúng ta cần làm theo các bước sau để khởi chạy màn hình soạn thảo Visual Basic Nhấp vào tab Nhà phát triển Từ nhóm Mã, chọn Visual Basic
-
Sao chép đoạn mã dưới đây trong mô-đun chuẩn
Sub FindOverlapTime() Dim rng As Range, cell As Range, trng As Range, tcell As Range Dim lr As Long lr = Cells(Rows.Count, "A").End(xlUp).Row Range("A2:H" & lr).Interior.ColorIndex = xlNone Set rng = Range("C2:C" & lr) For Each cell In rng If Application.CountIf(Range("C2", cell), cell.Value) > 1 Then Set trng = Range("F2:F" & cell.Row - 1) For Each tcell In trng If tcell.Offset(0, -3) = cell Then If (cell.Offset(0, 3) >= tcell And cell.Offset(0, 3) <= tcell.Offset(0, 1)) _ Or (cell.Offset(0, 4) >= tcell And cell.Offset(0, 4) <= tcell.Offset(0, 1)) Then Range("A" & cell.Row & ":H" & cell.Row).Interior.ColorIndex = 3 End If End If Next tcell End If Next cell End Sub
image: https: //www.office-skill.site/images/wp-content-uploads-2015-07-image-43.png [image 4, width = 624, height = 293] * Khi chúng tôi chạy macro, chúng ta sẽ nhận được kết quả; tham khảo ảnh chụp bên dưới:
Giải thích mã:
Khai báo rng, cell, trng, tcell dưới dạng phạm vi Lr miễn là * lr = Cells (Rows.Count, “A”). End (xlUp) .Row sẽ kiểm tra hàng cuối cùng của trang tính hiện tại.
-
Phạm vi (“A2: H” & lr) .Interior.ColorIndex = xlNone; điều này sẽ chọn phạm vi bắt đầu từ ô A2 đến cột H cho đến hàng cuối cùng (A2: H5 sẽ được chọn trong ví dụ của chúng tôi) và sẽ đảm bảo không có màu nào được tô.
Đặt rng = Range (“C2: C” & lr); cột C (ID hồ sơ) sẽ được lưu trữ trong rng Đối với Mỗi ô Trong rng; bây giờ chúng ta sẽ chạy Đối với mỗi vòng lặp trong rng tức là cột C If Application.CountIf (Range (“C2”, ô), ô.Value)> 1 Sau đó; điều này sẽ kiểm tra số lần giá trị ô lớn hơn 1; nếu tìm thấy lớn hơn 1, thì Đặt trng = Range (“F2: F” & cell.Row – 1); bây giờ chúng ta sẽ đặt cột F tức là
IN time in trng * Tiếp theo chúng ta sẽ chạy For Each Loop in trng và kiểm tra xem có hàng trùng lặp nào không và đánh dấu bằng màu đỏ nếu tìm thấy.
Kết luận: Bằng cách này, chúng ta có thể tìm thấy các giá trị trùng lặp bằng cách sử dụng mã macro và có thể loại bỏ chúng sau đó.
Nếu bạn thích blog của chúng tôi, hãy chia sẻ nó với bạn bè của bạn trên Facebook. Và bạn cũng có thể theo dõi chúng tôi trên Twitter và Facebook.
Chúng tôi rất muốn nghe ý kiến từ bạn, hãy cho chúng tôi biết cách chúng tôi có thể cải thiện, bổ sung hoặc đổi mới công việc của mình và làm cho nó tốt hơn cho bạn. Viết thư cho chúng tôi tại [email protected]