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.