Tengo dos columnas de datos:
Member Time
A 09/24/2015 09:48:36
A 09/24/2015 09:47:40
A 09/24/2015 10:11:06
A 09/24/2015 10:08:47
B 09/24/2015 10:28:45
B 09/24/2015 10:29:49
B 09/24/2015 10:30:12
B 09/24/2015 10:30:46
A 09/24/2015 10:33:59
A 09/24/2015 10:31:27
Digamos que estos datos comienzan desde A1
hastaB11
Tengo una fórmula para restar valores de tiempo consecutivos después de que los valores de las columnas se hayan ordenado en orden ascendente:
=(TIMEVALUE(RIGHT(B2, 8))-TIMEVALUE(RIGHT(B1, 8)))*24*60*60
La fórmula funciona bien para conseguirme la diferencia en segundos. Sin embargo, si filtro para obtener la diferencia solo para el miembro A, la fórmula también considera las filas ocultas, por lo que genera un resultado incorrecto.
¿Cuál es la mejor manera de aplicar esta fórmula solo a filas visibles?
Según una respuesta proporcionada en otro sitio web, intenté escribir una función de la siguiente manera:
Soy nuevo en VBA, por lo que no puedo escribir el código.
Function MyDiff (MyRange As Range) As Integer
Dim c As Range
For Each c In MyRange
If (c.Value = 1) And (c.EntireRow.Hidden = False) Then
Worksheets("Sheet1").Range("B2").value - Range("B1").value,
End If
Next c
End Function
Esto calcula la diferencia de las dos primeras celdas, pero no puedo obtenerla para toda la columna. Para fines de demostración, solo he usado celdas B1
y B2
tal como están. Para los datos de ejemplo que proporcioné, los dos valores deben restarse como Timevalue
se muestra en la pregunta original.