Как я могу гарантировать, что формула, которую я написал для расчета разницы между значениями времени, применима только к отфильтрованным значениям?

Как я могу гарантировать, что формула, которую я написал для расчета разницы между значениями времени, применима только к отфильтрованным значениям?

У меня есть два столбца данных:

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

Допустим, эти данные начинаются с A1поB11

У меня есть формула для вычитания последовательных значений времени после сортировки значений столбцов в порядке возрастания:

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

Формула отлично работает, чтобы получить разницу в секундах. Однако, если я отфильтрую, чтобы получить разницу только для члена A, формула также учитывает скрытые строки, следовательно, давая неправильный вывод.

Как лучше всего применить эту формулу только к видимым строкам?

Основываясь на ответе, предоставленном на другом сайте, я попытался написать функцию следующим образом:

Я новичок в VBA, поэтому не могу написать для него код.

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

Это вычисление разницы первых двух ячеек, но я не могу получить ее для всего столбца. Для демонстрационных целей я просто использовал ячейки B1и B2как есть. Для данных примера, которые я предоставил, два значения должны быть вычтены, как Timevalueпоказано в исходном вопросе.

Связанный контент