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