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 de A1
aB11
Tengo una fórmula para restar valores de tiempo consecutivos después de que los valores de la columna se hayan ordenado en orden ascendente:
=(TIMEVALUE(RIGHT(B2, 8))-TIMEVALUE(RIGHT(B1, 8)))*24*60*60
La fórmula funciona bien para obtener 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 tanto, da un resultado incorrecto.
¿Cuál es la mejor manera de aplicar esta fórmula solo a las filas visibles?
Basado en una respuesta proporcionada en otro sitio web, intenté escribir una función de la siguiente manera:
Soy nuevo en VBA, así 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 es calcular la diferencia de las dos primeras celdas, pero no puedo obtenerla para toda la columna. Para fines de demostración, acabo de usar celdas B1
y B2
tal como están. Para los datos de ejemplo que he proporcionado, los dos valores deben restarse Timevalue
como se muestra en la pregunta original.
fuente