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

1

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 iniciem de A1 a 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 fazer a diferença em segundos. No entanto, se eu filtrar para obter a diferença apenas para o membro A, a fórmula também considerará as linhas ocultas, fornecendo, portanto, a saída incorreta.

Qual é a melhor maneira de aplicar essa fórmula somente a linhas visíveis?

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

Sou novo no VBA, portanto não posso 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 obtê-lo para a coluna inteira. Para fins de demonstração, acabei de usar as células B1 e B2 como estão. Para os dados de exemplo que forneci, os dois valores devem ser subtraídos como Timevalue , conforme mostrado na pergunta original.

    
por Achyutha Mohan 29.09.2015 / 16:28

0 respostas