Yinelenen zaman dilimlerini belirleme

Anonim

Aynı kişi için birden fazla giriş içeren yinelenen satırı bulmak ve yinelenen girişleri bulmak istiyorsanız, bu makaleyi kaçırmamalısınız. Yinelenen satırları tanımlamanıza yardımcı olacak bir makro kodu sağlayacağız. Bu makalede, belirli bir sütuna göre yinelenen satırları nasıl bulacağımızı öğreneceğiz.

Soru: İnsanlar için birden çok zaman damgalı girişleri olan bir elektronik tablom var. Bu insanlar aynı anda birkaç yerde girip çıkabilirler. Verileri arayacak ve belirli bir kişi için çakışan zamanlarla kırmızı çizgilerle vurgulayacak bir formül veya makro (bu durumda hangisinin en iyi şekilde ulaştığından emin değilim) yazmaya çalışmak. Bu mümkün mü ve birisinin yardım edebileceği bir şey mi lütfen? Çok teşekkürler.

Asıl soru burada bulunabilir

Önceki sayfanın anlık görüntüsü aşağıdadır:

Aşağıdaki sayfanın anlık görüntüsü:

Kodu almak için; Visual Basic düzenleyici ekranını başlatmak için aşağıdaki adımları izlememiz gerekiyor

  • Geliştirici sekmesine tıklayın
  • Kod grubundan Visual Basic'i seçin

  • Aşağıdaki kodu standart modüle kopyalayı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) Her hücre için rng If Application.CountIf(Range("C2", hücre), cell.Value) > 1 Ardından trng'yi ayarlayın = Aralık("F2:F" & cell.Satır - 1) trng'deki Her tcell İçin If tcell.Offset(0, -3) = cell Then If (cell.Offset(0, 3) >= tcell And cell.Offset (0, 3) = tcell And cell.Offset(0, 4) <= tcell.Offset(0, 1)) Ardından Range("A" & cell.Row & ":H" & cell.Row).Interior. ColorIndex = 3 End If End If Next tcell End If Sonraki hücre End Sub 

  • Makroyu çalıştırdığımızda sonucu alacağız; aşağıdaki anlık görüntüye bakın:

Kod Açıklaması:

  • rng, cell, trng, tcell'i aralık olarak bildir
  • Lr kadar uzun
  • lr = Cells(Rows.Count, "A").End(xlUp).Row geçerli sayfanın son satırını kontrol edecektir.
  • Range("A2:H" & lr).Interior.ColorIndex = xlNone; bu, A2 hücresinden H sütununa kadar son satıra kadar olan aralığı seçecektir (örneğimizde A2:H5 seçilecektir) ve hiçbir rengin doldurulmamasını sağlayacaktır.
  • Set rng = Aralık("C2:C" & lr); C sütunu (Profil Kimliği) rng'de saklanacak
  • Her hücre için rng'de; şimdi rng yani C sütunundaki her döngü için koşacağız
  • If Application.CountIf(Range("C2", hücre), cell.Value) > 1 Sonra; bu, hücre değerinin 1'den büyük olup olmadığını kontrol edecektir; 1'den büyük bulunursa, o zaman
  • Set trng = Aralık("F2:F" & hücre.Satır - 1); şimdi trng'de F sütununu, yani IN zamanını ayarlayacağız
  • Bir sonraki adımda For Every Loop'u trng'de çalıştıracağız ve yinelenen bir satır olup olmadığını kontrol edeceğiz ve varsa kırmızı renkle vurgulayacağız.

Çözüm: Bu sayede makro kod kullanarak mükerrer değerleri bulabilir ve daha sonra kaldırabiliriz.

Bloglarımızı beğendiyseniz, Facebook'ta arkadaşlarınızla paylaşın. Ayrıca bizi Twitter ve Facebook'ta da takip edebilirsiniz.
Sizden haber almayı çok isteriz, işimizi nasıl iyileştirebileceğimizi, tamamlayabileceğimizi veya yenileyebileceğimizi ve sizin için daha iyi hale getirebileceğimizi bize bildirin. Bize e-posta sitesinde yazın