¿Cómo puedo asegurarme de que una fórmula que he escrito para calcular la diferencia entre los valores de tiempo se aplica solo a los valores filtrados?


1

Tengo dos columnas de datos:

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

Digamos que estos datos comienzan de A1aB11

Tengo una fórmula para restar valores de tiempo consecutivos después de que los valores de la columna se hayan ordenado en orden ascendente:

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

La fórmula funciona bien para obtener la diferencia en segundos. Sin embargo, si filtro para obtener la diferencia solo para el miembro A, la fórmula también considera las filas ocultas, por lo tanto, da un resultado incorrecto.

¿Cuál es la mejor manera de aplicar esta fórmula solo a las filas visibles?

Basado en una respuesta proporcionada en otro sitio web, intenté escribir una función de la siguiente manera:

Soy nuevo en VBA, así que no puedo escribir el código.

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

Esto es calcular la diferencia de las dos primeras celdas, pero no puedo obtenerla para toda la columna. Para fines de demostración, acabo de usar celdas B1y B2tal como están. Para los datos de ejemplo que he proporcionado, los dos valores deben restarse Timevaluecomo se muestra en la pregunta original.


Debería haber buscado "fórmula de aplicación de Excel solo para filas visibles". Entonces habría encontrado Hacer que una fórmula considere solo las filas visibles como el segundo enlace.
DavidPostill

Gracias por el comentario. Pasé por eso antes de preguntar esto. Sin embargo, el enlace proporciona la respuesta para el recuento de un rango de celdas. Quería saber si hay algo diferente cuando lo que necesito es la diferencia entre las dos filas considerando solo las filas visibles.
Achyutha Mohan

El enlace muestra cómo escribir una función que usa solo las filas visibles. Puede usar este tipo de enfoque para calcular sus diferencias.
DavidPostill

David, soy nuevo en VBA. Edité la pregunta e incluí la función que probé que no funciona como se esperaba. ¿Vale la pena publicar esto como una nueva pregunta?
Achyutha Mohan

No, esta bien. Has demostrado lo que has intentado. Esperemos que un experto en VBA venga y lo ayude. Supongo que necesita algún tipo de bucle, pero no sabría por dónde comenzar (no sé VBA).
DavidPostill
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.