¿Cómo puedo asegurarme de que una fórmula que he escrito para calcular la diferencia entre los valores de tiempo se aplique solo a los valores filtrados?

¿Cómo puedo asegurarme de que una fórmula que he escrito para calcular la diferencia entre los valores de tiempo se aplique solo a los valores filtrados?

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 A1hastaB11

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 B1y B2tal como están. Para los datos de ejemplo que proporcioné, los dos valores deben restarse como Timevaluese muestra en la pregunta original.

información relacionada