Wie kann ich sicherstellen, dass eine von mir geschriebene Formel zum Berechnen der Differenz zwischen Zeitwerten nur auf die gefilterten Werte anwendbar ist?

Wie kann ich sicherstellen, dass eine von mir geschriebene Formel zum Berechnen der Differenz zwischen Zeitwerten nur auf die gefilterten Werte anwendbar ist?

Ich habe zwei Datenspalten:

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

Angenommen, diese Daten beginnen im Zeitraum von A1bisB11

Ich habe eine Formel zum Subtrahieren aufeinanderfolgender Zeitwerte, nachdem die Spaltenwerte in aufsteigender Reihenfolge sortiert wurden:

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

Die Formel funktioniert einwandfrei und liefert mir die Differenz in Sekunden. Wenn ich jedoch filtere, um nur die Differenz für Mitglied A zu erhalten, berücksichtigt die Formel auch die ausgeblendeten Zeilen und liefert daher die falsche Ausgabe.

Wie kann ich diese Formel am besten nur auf sichtbare Zeilen anwenden?

Basierend auf einer Antwort auf einer anderen Website habe ich versucht, eine Funktion wie folgt zu schreiben:

Ich bin neu bei VBA und kann daher den Code dafür nicht schreiben.

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

Dies berechnet die Differenz der ersten beiden Zellen, aber ich kann sie nicht für die gesamte Spalte erhalten. Zu Demonstrationszwecken habe ich einfach Zellen verwendet, so wie sie sind. Für die Beispieldaten, die B1ich B2bereitgestellt habe, müssen die beiden Werte subtrahiert werden, wie Timevaluein der ursprünglichen Frage gezeigt.

verwandte Informationen