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 A1
bisB11
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 B1
ich B2
bereitgestellt habe, müssen die beiden Werte subtrahiert werden, wie Timevalue
in der ursprünglichen Frage gezeigt.