Como posso garantir que uma fórmula que escrevi para calcular a diferença entre valores de tempo se aplica apenas aos valores filtrados?

Como posso garantir que uma fórmula que escrevi para calcular a diferença entre valores de tempo se aplica apenas aos valores filtrados?

Eu tenho duas colunas de dados:

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 esses dados comecem de A1atéB11

Eu tenho uma fórmula para subtrair valores de tempo consecutivos após os valores da coluna terem sido classificados em ordem crescente:

=(TIMEVALUE(RIGHT(B2, 8))-TIMEVALUE(RIGHT(B1, 8)))*24*60*60

A fórmula funciona bem para me dar a diferença em segundos. No entanto, se eu filtrar para obter a diferença apenas para o membro A, a fórmula considerará também as linhas ocultas, fornecendo a saída errada.

Qual é a melhor maneira de aplicar esta fórmula apenas às linhas visíveis?

Com base em uma resposta fornecida em outro site, tentei escrever uma função da seguinte maneira:

Sou novo no VBA, então não consigo escrever o código para ele.

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

Isso está calculando a diferença das duas primeiras células, mas não consigo calcular para a coluna inteira. Para fins de demonstração, acabei de usar células B1e B2como estão. Para os dados de exemplo que forneci, os dois valores devem ser subtraídos conforme Timevaluemostrado na pergunta original.

informação relacionada