Si desea descubrir la fila duplicada que tiene varias entradas para la misma persona y desea encontrar entradas duplicadas, no debe perderse este artículo. Le proporcionaremos un código de macro para ayudarlo a identificar las filas duplicadas. En este artículo, aprenderemos cómo encontrar filas duplicadas según una columna en particular .

Pregunta: Tengo una hoja de cálculo con varias entradas de personas con marca de tiempo. Estas personas pueden fichar su entrada o salida en varios lugares al mismo tiempo. Intentar escribir una fórmula o macro (no estoy seguro de cuál logra mejor el objetivo en este caso) que buscará los datos y los resaltará en líneas rojas con tiempos que se superponen para una persona específica. ¿Es esto posible y es algo con lo que alguien podría ayudar por favor? Muchas gracias.

La pregunta original se puede encontrar aquí

A continuación se muestra la instantánea de la hoja anterior:

image 1

A continuación se muestra la instantánea de la hoja posterior:

image 2

Para obtener el código; debemos seguir los pasos a continuación para iniciar la pantalla del editor de Visual Basic. Haga clic en la pestaña Desarrollador. Desde el grupo Código, seleccione Visual Basic

image 3

  • Copie el siguiente código en el módulo estándar

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

imagen: https: //www.office-skill.site/images/wp-content-uploads-2015-07-image-43.png [imagen 4, ancho = 624, alto = 293] * Mientras ejecutamos la macro, obtendremos el resultado; consulte la siguiente instantánea:

image 5

Explicación del código:

Declare rng, cell, trng, tcell como rango Lr mientras * lr = Cells (Rows.Count, «A»). End (xlUp) .Row verificará la última fila de la hoja actual.

  • Rango («A2: H» & lr) .Interior.ColorIndex = xlNone; esto seleccionará el rango desde la celda A2 hasta la columna H hasta la última fila (se seleccionará A2: H5 en nuestro ejemplo) y asegurará que no se llene ningún color.

Establecer rng = Rango («C2: C» & lr); la columna C (ID de perfiles) se almacenará en rng Para cada celda In rng; ahora ejecutaremos Para cada bucle en rng, es decir, columna C If Application.CountIf (Range («C2», cell), cell.Value)> 1 Then; esto verificará el número de veces que el valor de la celda es mayor que 1; si se encuentra mayor que 1, entonces Set trng = Range («F2: F» & cell.Row – 1); ahora configuraremos la columna F, es decir,

IN time en trng * A continuación, ejecutaremos For Each Loop en trng y comprobaremos si hay alguna fila duplicada y la resaltaremos con color rojo si la encontramos.

Conclusión: De esta forma, podemos encontrar valores duplicados usando código macro y podemos eliminarlos más tarde.

image 48

Si te gustaron nuestros blogs, compártelo con tus amigos en Facebook. Y también puedes seguirnos en Twitter y Facebook.

Nos encantaría saber de usted, háganos saber cómo podemos mejorar, complementar o innovar nuestro trabajo y hacerlo mejor para usted. Escríbanos a [email protected]