Identificarea intervalelor de timp duplicate

Anonim

Dacă doriți să aflați rândul duplicat cu mai multe intrări pentru aceeași persoană și doriți să aflați intrări duplicate, atunci nu ar trebui să ratați acest articol. Vă vom oferi un cod macro pentru a vă ajuta să identificați rândurile duplicate. În acest articol, vom învăța cum să găsim rânduri duplicate pe baza unei anumite coloane.

Întrebare: Am o foaie de calcul cu intrări cu ștampilă multiplă pentru oameni. Acești oameni pot intra sau ieși în mai multe locuri în același timp. Încercarea de a scrie o formulă sau macro (nu sunt sigur care atinge scopul cel mai bine în acest caz) care va căuta datele și va evidenția în linii roșii cu timpi care se suprapun pentru o anumită persoană. Este posibil acest lucru și este ceva cu care cineva ar putea ajuta, vă rog? Mulțumesc mult.

Întrebarea inițială o puteți găsi aici

Următorul este instantaneul paginii anterioare:

Următorul este instantaneul după foaia:

Pentru a obține codul; trebuie să urmăm pașii de mai jos pentru a lansa ecranul editorului Visual Basic

  • Faceți clic pe fila Dezvoltator
  • Din grupul de coduri, selectați Visual Basic

  • Copiați codul de mai jos în modulul standard
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) Pentru fiecare celulă din rng Dacă Application.CountIf (Range ("C2", celulă), cell.Value)> 1 Apoi setați 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 And cell.Offset (0, 4) <= tcell.Offset (0, 1)) Apoi Range ("A" & cell.Row & ": H" & cell.Row) .Interior. ColorIndex = 3 End If End If Next tcell End If Next cell End Sub 

  • Pe măsură ce rulăm macro-ul, vom obține rezultatul; consultați mai jos instantaneu:

Explicatie cod:

  • Declarați rng, cell, trng, tcell ca interval
  • Lr atâta timp
  • lr = Celule (Rows.Count, "A"). End (xlUp). Row va verifica ultimul rând al foii curente.
  • Gama ("A2: H" & lr) .Interior.ColorIndex = xlNone; aceasta va selecta intervalul începând de la celula A2 până la coloana H până la ultimul rând (A2: H5 va fi selectat în exemplul nostru) și se va asigura că nu se umple nicio culoare.
  • Setați rng = Range ("C2: C" & lr); coloana C (ID profiluri) va fi stocată în rng
  • Pentru fiecare celulă din rng; acum vom rula pentru fiecare buclă din rng, adică coloana C
  • Dacă Application.CountIf (Range ("C2", celulă), cell.Value)> 1 Apoi; aceasta va verifica de câte ori valoarea celulei este mai mare de 1; dacă se găsește mai mare de 1, atunci
  • Setați trng = Range ("F2: F" & cell.Row - 1); acum vom seta coloana F adică IN timp în trng
  • Următorul vom rula Pentru fiecare buclă în trng și vom verifica dacă există vreun rând duplicat și îl vom evidenția cu culoare roșie dacă ați găsit unul.

Concluzie: În acest fel, putem găsi valori duplicat folosind codul macro și le putem elimina ulterior.

Dacă ți-au plăcut blogurile noastre, împărtășește-le prietenilor tăi de pe Facebook. Și, de asemenea, ne puteți urmări pe Twitter și Facebook.
Ne-ar plăcea să aflăm de la dvs., să ne anunțați cum putem îmbunătăți, completa sau inova munca noastră și să o îmbunătățim. Scrieți-ne pe site-ul de e-mail