Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Earn a 50% discount on the DP-600 certification exam by completing the Fabric 30 Days to Learn It challenge.

Reply
Josh97Ellis
Helper III
Helper III

Calcular el tiempo entre dos filas en la misma columna

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

13 REPLIES 13
Syndicate_Admin
Administrator
Administrator

pls, también estoy atrapado aquí. El valor de la fila 2 debe estar en la fila 1

lit2018pbi
Resolver II
Resolver II

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]&" ",'time diff'[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('time diff','time diff'[Material] ? EARLIER('time diff'[Material])&&'time diff'[Fecha y hora]<EARLIER('time diff'[Date and Time]))
Lag.PNG

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

Diferencia en Minutos - DATEDIFF('Time diff'[Lag Date and Time],'time diff'[Date and Time],MINUTE)

Difference.PNG

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

¡Esto fue muy útil para mí! Necesitaba calcular una diferencia horaria basada en una identificación, ¡y esto lo hizo perfectamente!

v-lionel-msft
Community Support
Community Support

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 post ayuda,entonces considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.

@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
Super User
Super User

@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...


Follow on LinkedIn
@ me in replies or I'll lose your thread!!!
Instead of a Kudo, please vote for this idea
Become an expert!: Enterprise DNA
External Tools: MSHGQM
YouTube Channel!: Microsoft Hates Greg
Latest book!:
The Definitive Guide to Power Query (M)

DAX is easy, CALCULATE makes DAX hard...
nandukrishnavs
Super User
Super User

@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
🙂


Regards,
Nandu Krishna

@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

@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
🙂


Regards,
Nandu Krishna

@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 esencialmente una fila. por mi última respuesta.

Gracias

🙂@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


Regards,
Nandu Krishna

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 la solución que necesito. Para explicar mi caso, cada fila representa un movimiento (o modificación del ticket) estre cada grupo para un ticket de la mesa 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 duración o podría indicar la cantidad de segundos en total para luego convertirlo a minutos u horas.

 

Espero me puedas ayudar.

 

Saludos,

Richard

amitchandak
Super User
Super User

@Josh97Ellis , Probar como

diff ?
var _max á maxx(filter(Table, [date] á earlier([date]) && [time] < earlier([time]) && [material] á earlier([material])),[time])
devolución
[time] - maxx(filter(Table, [date] á earlier([date]) && [time] á _max && [material] á earlier([material])),[time])

Helpful resources

Announcements
RTI Forums Carousel3

New forum boards available in Real-Time Intelligence.

Ask questions in Eventhouse and KQL, Eventstream, and Reflex.

MayPowerBICarousel

Power BI Monthly Update - May 2024

Check out the May 2024 Power BI update to learn about new features.

LearnSurvey

Fabric certifications survey

Certification feedback opportunity for the community.