Duración de un evento específico dentro de un mismo grupo

Tengo una tabla de datos con las siguientes columnas: Nombre; Fecha ; Evento

Cada línea es un registro para cada nombre, con la fecha en la que ha tenido lugar un evento (A, B, C, D, E o F). Me gustaría averiguar la duración para cada uno de los nombres, mediante una diferencia de fechas, del período transcurrido desde que un nombre tiene un evento A hasta que vuelve a tener un evento A. Si no ha habido un evento A previo, calcular también el tiempo (con el primer registro de fecha de cada nombre) hasta que alcanza A. Hay que tener en cuenta que puede haber nombres con todos los eventos A, otras con varios eventos A seguidos y algún BCDEF entre medias, por lo que solo me interesaría saber la duración desde que un evento es A hasta que vuelve a ser A porque ha habido BCDEF entre medias.

Muchas gracias

1 Respuesta

Respuesta

Puedes usar este código:

Sub MiraEventos()
f = Cells(Rows.Count, 1).End(xlUp).Row

For f2 = f To 3 Step -1
Cells(f2, 1).Select
F1 = f2 - 1
Do While Cells(F1, 1) = Cells(f2, 1)
Cells(F1, 3).Select
If Cells(f2, 3) = Cells(F1, 3) Then Cells(f2, 4) = Cells(F1, 2): Cells(f2, 5) = DateDiff("d", Cells(F1, 2), Cells(f2, 2)): Exit Do
F1 = F1 - 1
If F1 = 1 Then Exit Sub
Loop
Next
End Sub

En la columna "D" te pondrá la fecha del anterior evento similar, y en la columna "E" el numero de días transcurridos entre ambas fechas.

Para ejecutarlo puedes asociarlo a un botón o grabarlo como un macro y asignarle una tecla de inicio rápido.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas