Daveed1973
No estoy seguro de si esto puede ser más fácil en SQL o Power BI, pero esto es lo que necesito para poder lograrlo.
Tengo dos tablas diferentes en el escritorio de BI, una tiene una lista de trabajos de eliminación de productos y la otra tiene una lista de fechas para los productos cuando se limpiaron. Entonces, por ejemplo, un producto se retira de un sitio y luego se limpia. Por lo tanto, habrá una fecha de eliminación y también una fecha en la que se limpió.
Para cada una de estas eliminaciones de los productos (estos tienen números de serie únicos), necesito la próxima fecha de limpieza y calculo cuánto tiempo tardaron en limpiarse los productos después de que se eliminaron.
La tabla 1 para las mudanzas tendrá una estructura como esta …
Número de serie, tipo de producto, fecha de eliminación
111111 Producto 1 14/08/2018
111111 Producto 1 17/08/2018
222222 Producto 2 08/11/2018
333333 Producto 3 16/08/2018
La tabla 2 para la información de limpieza se verá así …
Número de serie, tipo de producto, fecha de limpieza
111111 Producto 1 15/08/2018
111111 Producto 1 20/08/2018
222222 Producto 2 14/08/2018
333333 Producto 3 18/08/2018
Los resultados de esto me mostrarían algo como esto para que luego pueda calcular los promedios para cada tipo de producto.
Número de serie, tipo de producto, días para limpiar
111111 Producto 1 1
111111 Producto 1 3
222222 Producto 2 3
333333 Producto 3 2
¿Cómo puedo tomar el número de serie y la fecha de la tabla 1 y encontrar la próxima fecha de limpieza para el mismo número de serie en la tabla 2 para que funcione?
Cualquier ayuda sería apreciada.
Daveed1973
En respuesta a v-lili6-msft
Terminé teniendo que hacer esto en SQL en su lugar, ya que descubrí que Power BI estaba luchando con la cantidad de datos. Lo hice usando una APLICACIÓN EXTERIOR similar a esta.
DESDE tblRemovals r
APLICAR EXTERIOR (SELECCIONE EL PRIMER 1 DateCleaned FROM tblCleans c DONDE c.SerialNumber = r.SerialNumber AND DateCleaned> = DateRemoved ORDER BY DateCleaned) AS cln
v-lili6-msft
hola @ Daveed1973
¿Podría decirme si su problema ha sido resuelto? Si es así, ¿podría marcar las respuestas útiles como Respondidas?
Atentamente,
Lin
Daveed1973
En respuesta a v-lili6-msft
Terminé teniendo que hacer esto en SQL en su lugar, ya que descubrí que Power BI estaba luchando con la cantidad de datos. Lo hice usando una APLICACIÓN EXTERIOR similar a esta.
DESDE tblRemovals r
APLICAR EXTERIOR (SELECCIONE EL PRIMER 1 DateCleaned FROM tblCleans c DONDE c.SerialNumber = r.SerialNumber AND DateCleaned> = DateRemoved ORDER BY DateCleaned) AS cln
v-lili6-msft
Hola,@Daveed1973
Si hay varias filas del mismo producto en la tabla 1, ¿cómo hacer coincidir la fecha de limpieza en la tabla 2?
Entonces hay dos soluciones:
1.
Si coincide con la fecha que es la última fecha después de la fecha de eliminación, puede usar esto para encontrar la fecha de limpieza:
Min clean date = CALCULATE(MIN(Table2[Clean Date]),FILTER(Table2,Table1[Serial Number]=Table2[Serial Number]&&Table1[ Product Type]=Table2[ Product Type]&&Table2[Clean Date]>Table1[ Removal Date]))
luego use la función dateiff para calcular los días
2.
Si No coincide con la fecha posterior a la última eliminación fecha, puede agregar una columna de índice para dos tablas
y luego use la función lookupvalue para encontrar la fecha de limpieza:
Clean date = LOOKUPVALUE(Table2[Clean Date],Table2[Index],Table1[Index])
luego use la función dateiff para calcular días como este
Days to Clean = DATEDIFF(Table1[ Removal Date],Table1[Clean date],DAY)
Resultado:
aquí está pbix, inténtelo.
https: //www.dropbox.com/s/z0mdpqqm8hlsiwy/Calculate%20time%20difference%20between%20dates%20in%20dif …
Atentamente,
Lin
LivioLanzo
Tienes diferentes formas de hacerlo
una solución puede ser agregar una columna de cálculo en la tabla de eliminación para obtener la próxima fecha de limpieza y luego hacer la diferencia
Próxima fecha de limpieza =
CALCULAR (
MIN ( Limpia[Clean Date] ),
Limpia[Product Type] = MÁS TEMPRANO ( Mudanzas[Product Type] ),
Limpia[Serial Number] = MÁS TEMPRANO ( Mudanzas[Serial Number] ),
Limpia[Clean Date] > MÁS TEMPRANO ( Mudanzas[Removal Date] )
)
Daveed1973
En respuesta a LivioLanzo
Desafortunadamente, parece que tengo problemas con esto y supongo que se debe a la cantidad de filas en las tablas, alrededor de 150k en cada una.
Tan pronto como agrego la columna calculada según su sugerencia, el pbix simplemente se muele para detener el intento de actualizar y luego aparece un error que dice que no hay suficiente memoria para completar la operación.
pmeyp
En respuesta a Daveed1973
Hola @ Daveed1973,
¿Terminó sin usar PowerBI más? Tenemos grandes grupos de datos y parece que superaremos a PowerBI con sus limitaciones actuales en unos 4-5 años. ¡Dime qué solución estás usando actualmente si puedes! ¡Apreciado enormemente!