Calcular el tiempo entre dos filas en la misma columna

Un usuario Pregunto ✅

Josh97Ellis

Hola

Estoy intentando crear una nueva columna que muestra cuántos minutos han pasado entre cada fila en la columna [Tiempo]. Básicamente, sólo necesito restar la fila inferior de la fila anterior para todas las filas. Esto es lo que he intentado, pero no hay suficiente memoria para completar la operación. Me pregunto si alguien sabe una mejor manera de evitar esto.

Josh97Ellis_1-1596643733299.png

lit2018pbi

Hola Josh,

Paso 1: Puede agregar una nueva columna tp concatenar fecha y hora usando el siguiente Dax

Fecha y hora: CONCATENAR (‘time diff'[Fecha].[ Fecha]& «», ‘diferencia de tiempo'[Time])
concat.PNG

Paso 2: Ahora encuentra la fecha y hora de retraso usando el siguiente Dax

Fecha y hora de retraso: CALCULATE (MAX (‘time diff'[Date and Time]), FILTER (‘diferencia de tiempo’, ‘diferencia de tiempo'[Material] ? ANTES (‘diferencia de tiempo'[Material]) && ‘diferencia de tiempo'[Fecha y hora]
Lag.PNG

Paso 3: Averiguar la diferencia de tiempo usando la siguiente Columna

Diferencia en Minutos – DATEDIFF (‘Time diff'[Lag Date and Time], ‘diferencia de tiempo'[Date and Time],MINUTO)

Diferencia.PNG

¡Hay muchos pasos involucrados aquí, pero buscar el resultado mediante la implementación de lo anterior!

¡Gracias!

Hola @ Josh97Ellis,

¿Así?

v-lionel-msft_0-1596681911097.png

¿O así?

v-lionel-msft_1-1596682031117.png

¿O @nandukrishnavs de la fórmula?

Saludos
Lionel Chen

Si este correo ayudaentonces considera Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.

Josh97Ellis

En respuesta a v-lionel-msft

@ v-lionel-msft Hola, necesito que sea el número de minutos (duración) entre cada marca de tiempo. Así que en Excel, se vería así:

Josh97Ellis_1-1596726659092.png

Greg_Deckler

@ Josh97Ellis – Vea mi artículo sobre el tiempo medio entre fallas (MTBF) que utiliza ANTES: http://community.powerbi.com/t5/Community-Blog/Mean-Time-Between-Failure-MTBF-and-Power-BI / ba-p / 3395 …

nandukrishnavs

@ Josh97Ellis

Prueba esto

Diff =
VAR __Previous =
    MAXX (
        FILTER (
            'Table',
            'Table'[Date] = EARLIER ( 'Table'[Date] )
                && 'Table'[Time] < EARLIER ( 'Table'[Time] )
        ),
        'Table'[Time]
    )
VAR __diff="Table"[Time] - __Previous
RETURN
    __diff

¿He respondido a tu pregunta? ¡Marca mi puesto como una solución!
Apreciar con un kudos
🙂

Josh97Ellis

En respuesta a nandukrishnavs

@nandukrishnavs Esto está cerca, parece que necesita ser «desplazado hacia arriba» una fila. Así que básicamente, el valor que obtengo en la fila 2 debe ser el valor de la fila 1, etc. Lo verás en la foto.

Josh97Ellis_0-1596727205695.png

nandukrishnavs

En respuesta a Josh97Ellis

@ Josh97Ellis tienes que cambiar el formato de la columna.

Establezca el tipo de datos como Hora. Formato como HH: mm

¿He respondido a tu pregunta? ¡Marca mi puesto como una solución!
Apreciar con un kudos
🙂

Josh97Ellis

En respuesta a nandukrishnavs

@nandukrishnavs Sí, conseguí el formato correcto después de enviar eso, estaba en el lugar equivocado.

¿Cómo puedo ajustar la fórmula para que cada fila de esa columna calculada se desplace rápidamente una fila. por mi última respuesta.

Gracias

nandukrishnavs

En respuesta a Josh97Ellis

🙂@ Josh97Ellis

Diff =
VAR __Previous =
    MINX (
        FILTER (
            'Table',
            'Table'[Date] = EARLIER ( 'Table'[Date] )
                && 'Table'[Time] > EARLIER ( 'Table'[Time] )
        ),
        'Table'[Time]
    )
VAR __diff = __Previous - 'Table'[Time]
RETURN
    __diff

RichardFig1

En respuesta a nandukrishnavs

Buenas tarde @nandukrishnavs.

Tengo una situación parecida. Probé con las dos soluciones recomendadas, teniendo como resultado lo que se muestra en la siguiente imagen:

RichardFig1_0-1632865434549.png

En ocasiones funciona, por lo que no debe estar lejos de la solución que necesito. Para explicar mi caso, cada fila represent un movimiento (o modificación del ticket) estre cada grupo para un ticket de la tabla de ayuda (14 movimientos). Tengo una columna con la fecha y otra con la hora de modificación. También concatené ambas columnas en la columna «Date & Time».

Necesito calcular cuánto tiempo pasó entre cada movimiento. Por ejemplo, del primer moviemiento al segundo pasaron 00h: 40m: 59s.

El resultado puede ser en formato de duración o podría indicar la cantidad de segundos en total para luego convertirlo a minutos u horas.

Espero me puedas ayudar.

Saludos,

Ricardo

Amitchandak

@ Josh97Ellis, Probar como

diff?
var _max á maxx (filter (Tabla, [date] á antes[date]) && [time] devolución
[time] – maxx (filtro (Tabla, [date] á antes[date]) && [time] á _max && [material] á antes[material])),[time])

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *