Hola, a ver me pueden ayudar:
Tengo dos tablas para controlar la entrega y recepción de unas llaves, el Pk es el código de la llave y necesito calcular la diferencia de tiempo entre la entrega de esa llave y su devolución (a veces no devuelve la llave el mismo al que se le entrega), pero necesito saber la diferencia de tiempo entre la entrega y devolución.
IdLlave | Usuario | FechaHora |
---|---|---|
6501 | Pepe | 01/01/2020 12:55 |
6605 | Luis | 01/01/2020 11:50 |
IdLlave | Usuario | FechaHora |
---|---|---|
6501 | Luis | 01/01/2020 15:30 |
6605 | Manuel | 02/01/2020 09:50 |
He probado generando esta consulta per solo funciona si el campo fechahora es el mismo en ambas tablas.
Resultado = SELECTCOLUMNS(Recogida; "idLlave"; Recogida[IdLlave]; "FechaRec"; Recogida[FechaHora]; "UsuarioRec"; Recogida[Usuario]; "FechaDev"; LOOKUPVALUE(Devolucion[FechaHora];Devolucion[FechaHora];Recogida[FechaHora]))
Gracias,
Hola Antoni, lo que…
Hola Antoni,
lo que comentas parece bastante sencillo: basta restar las dos fechas. Algo como:
Resultado =
SELECTCOLUMNS(
Recogida;
"IdLlave"; Recogida[IdLlave];
"Tiempo"; FORMAT(RELATED('Devolución'[Fecha]) - Recogida[Fecha];"HH:MM")
)
Aquí estoy generando la lista de llaves y los tiempos entre la devolución y la recogida (por supuesto, no estoy contemplando el caso de que no se haya entregado todavía, etc.). Como ves, basta acceder al otro campo con RELATED y restar...
Saludos
Raúl
Hola Raúl, Gracias por tu…
Hola Raúl,
Gracias por tu respuesta, lo que sucede es que en las tablas hay más entregas y devoluciones de la misma llave en momentos distintos...
etc..
Y en Devlouciones lo mismo, la llave 6501 puede ser retornada el mismo día o el siguiente, o sea que debería de buscar la llave entregada en la tabla de devoluciuones con fechaHora igual o posterior y esa sería su pareja, me explico bien?
Saludos y gracias,
Hola Antoni, Así, a ojo, la…
Hola Antoni,
Así, a ojo, la solución dependerá de algunas decisiones que no me quedan claras: ¿quieres una medida o llevar el resultado a una tabla? ¿quieres obtener la duración para la última entrega de cada llave? ¿o para cada una de las entregas de cada llave? y, en este último caso ¿cómo identificas cada entrega?
En todo caso, aquí tienes una idea sobre la que trabajar: he creado una columna calculada en la tabla de recogidas que muestra la hora de devolución para cada entrega. Básicamente lo que hago es, dada una llave (con una hora de entrega), filtro la tabla de devoluciones para que solo muestre las de esa llave, considero solo las horas posteriores a la entrega, y me quedo con la hora más baja (es decir, la siguiente), el código es éste:
Fecha recogida =
MINX(
FILTER(
'Devolución';
'Devolución'[IdLlave] = Recogida[IdLlave] && 'Devolución'[Fecha] >= Recogida[Fecha]
);
'Devolución'[Fecha]
)
Aquí tienes la tabla de devoluciones que me he inventado:
Y aquí tienes el resultado sobre una tabla de entregas de juguete:
Espero que te sirva para llegar a la solución que buscas
Un saludo
Daniel
Hola Daniel, Y lo que…
Hola Daniel,
Y lo que necesito será la diferencia de tiempo entre cada entrega y devolución, además de si la devuelve el mismo usuario que la recoge.
Muchísimas gracias por tu aportación!, voy a investigar un poco lo que me comentas y te informo.
Antoni.
Por supuesto, si optas por…
Por supuesto, si optas por el enfoque de la tabla calculada, puedes calcular la duración muy fácilmente con
Duración = DATEDIFF(Recogida[Fecha];Recogida[Fecha recogida];SECOND)
Saludos
Daniel