時間値の差を計算するために作成した数式が、フィルタリングされた値にのみ適用されるようにするにはどうすればよいですか?

時間値の差を計算するために作成した数式が、フィルタリングされた値にのみ適用されるようにするにはどうすればよいですか?

2 つのデータ列があります:

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 の初心者なので、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

これは最初の 2 つのセルの差を計算していますが、列全体の差は計算できません。デモンストレーションの目的で、セルをそのまま使用しましたB1。私が提供したサンプル データの場合、元の質問に示されているようB2に、2 つの値を減算する必要があります。Timevalue

関連情報