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 A1
até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 B1
e B2
como estão. Para os dados de exemplo que forneci, os dois valores devem ser subtraídos conforme Timevalue
mostrado na pergunta original.