Identifiera dubbla tidsramar

Anonim

Om du vill ta reda på den dubblerade raden med flera poster för samma person och du vill ta reda på dubbla poster, bör du inte missa den här artikeln. Vi tillhandahåller en makrokod som hjälper dig att identifiera de dubblerade raderna. I den här artikeln kommer vi att lära oss hur du hittar dubblerade rader baserat på en viss kolumn.

Fråga: Jag har ett kalkylblad med flera tidsstämplade poster för människor. Dessa människor kan klocka in eller ut på flera ställen samtidigt. Försöker skriva en formel eller ett makro (inte säker på vilket som uppnår målet bäst i det här fallet) som söker i data och markerar med röda linjer med tider som överlappar för en specifik person. Är detta möjligt och är det något någon kan hjälpa till med? Tack så mycket.

Den ursprungliga frågan hittar du här

Följande är ögonblicksbilden av före arket:

Följande är ögonblicksbilden av efterarket:

För att få koden; vi måste följa stegen nedan för att starta Visual Basic -redigeringsskärmen

  • Klicka på fliken Utvecklare
  • Välj Visual Basic i kodgruppen

  • Kopiera koden nedan i standardmodulen
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) För varje cell i rng If Application.CountIf (Range ("C2", cell), cell.Value)> 1 Ställ sedan in trng = Område ("F2: F" & cell.Rad - 1) För varje cell i trng Om tcell.Offset (0, -3) = cell Då Om (cell.Offset (0, 3)> = tcell Och cell.Offset (0, 3) = tcell Och cell.Offset (0, 4) <= tcell.Offset (0, 1)) Sedan Range ("A" & cell.Rad & ": H" & cell.Rad) .Interior. ColorIndex = 3 End If End If Next tcell End If Next cell End Sub 

  • När vi kör makrot får vi resultatet; se ögonblicksbild nedan:

Kodförklaring:

  • Deklarera rng, cell, trng, tcell som intervall
  • Lr så länge
  • lr = Celler (rader.räkning, "A"). Avsluta (xlUp). Raden kontrollerar den sista raden i det aktuella arket.
  • Område ("A2: H" & lr) .Interior.ColorIndex = xlNone; detta kommer att välja intervall från cell A2 till H -kolumn till sista raden (A2: H5 kommer att väljas i vårt exempel) och kommer att säkerställa att ingen färg fylls.
  • Ställ in rng = Range ("C2: C" & lr); kolumn C (profil -ID) kommer att lagras i rng
  • För varje cell I rng; nu kör vi för varje loop i rng, dvs kolumn C
  • Om Application.CountIf (Range ("C2", cell), cell.Value)> 1 Sedan; detta kommer att kontrollera antalet gånger cellvärdet är större än 1; om det finns större än 1, då
  • Ställ in trng = Range ("F2: F" & cell.Rad - 1); nu kommer vi att ställa in kolumn F dvs IN tid i trng
  • Nästa kör vi för varje loop i trng och kontrollera om det finns någon duplicerad rad och markera den med röd färg om den hittas.

Slutsats: På detta sätt kan vi hitta dubblettvärden med hjälp av makrokod och kan ta bort dem senare.

Om du gillade våra bloggar, dela den med dina vänner på Facebook. Och du kan också följa oss på Twitter och Facebook.
Vi vill gärna höra från dig, låt oss veta hur vi kan förbättra, komplettera eller förnya vårt arbete och göra det bättre för dig. Skriv till oss på e -postwebbplatsen