Register now to learn Fabric in free live sessions led by the best Microsoft experts. From Apr 16 to May 9, in English and Spanish.
Tengo una mesa que realiza un seguimiento de los tiempos de inactividad de las máquinas. Algunos campos que tengo son [start_time] y [end_time] (ambos son datetime), [duration] (en minutos como un número decimal). Esos son bastante autoexplicativos. He creado otro campo en la consulta de energía llamado [date_hour] (como datetime) que es la hora del día en que se produjo un tiempo de inactividad, por ejemplo, si un tiempo de inactividad comenzó a las 10:15 am del 13 de octubre, se mostraría como "10/13/2020 10:00:00 AM".
Algunos de estos tiempos de inactividad son solo unos minutos, pero algunos de ellos pueden durar varias horas. Quiero mostrar estos objetos visuales como gráficos donde puedo profundizar en el campo [date_hour] para máquinas específicas y ver cuántos minutos estuvieron abajo para cualquier hora del día. Pero con cómo actualmente lo tengo modelado, si un tiempo de inactividad comienza a las 10:15 AM y dura 120 minutos, muestra que la hora de las 10 a. m. tiene 120 minutos de tiempo de inactividad, y obviamente solo puede haber 60 minutos en una hora, por lo que mostrar 120 minutos de tiempo de inactividad en una hora es un poco engañoso.
Así que básicamente lo que me gustaría hacer es, si hay un tiempo de inactividad que es más de 60 minutos, tener una expresión DAX que básicamente lo arrastra a través de los muchos campos [date_hour] son necesarios durante tantos minutos que sea.
¿Es algo que suena factible? No soy tan bueno en DAX así que me imagino que hay algunas personas por aquí que son realmente buenas en eso que podrían tener algunas ideas.
Solved! Go to Solution.
1. Necesita una tabla de fecha y hora completa con todas las horas, sin huecos. También debe tener una tabla de fechas completa con todos los días del año (años completos) para evitar problemas inesperados.
2. No hay relación entre la tabla de fecha y hora y la tabla principal
3. Cree esta medida para el gráfico:
Measure =
VAR startSlot_ = SELECTEDVALUE('date hours'[date_hour])
VAR endSlot_ = startSlot_ + (1/24) //1 hour later
RETURN
SUMX(Main,
VAR aux_ = MIN(endSlot_,Main[end_time])- MAX(startSlot_, Main[start_time])
VAR timeInSlot_ = IF(aux_>=0, 24*60*aux_, 0)
RETURN
timeInSlot_)
4. Véalo todo en juego en el archivo adjunto
Por favor, marque la pregunta resuelta cuando haya terminado y considere dar un pulgar hacia arriba si las publicaciones son útiles.
Póngase en contacto conmigo de forma privada para obtener asistencia con cualquier necesidad de BI a gran escala, tutoría, etc.
Salud
Llamando a @Greg_Deckler
¡Espero que no te importe que te etiquete en esto! Me recordó tu capítulo mtBF.
Proud to be a Super User!
Hola @rogletree
No lo he entendido. ¿Puede mostrar un ejemplo basado en datos con el resultado esperado? Para ayudar a aclarar un poco
Por favor, marque la pregunta resuelta cuando haya terminado y considere dar un pulgar hacia arriba si las publicaciones son útiles.
Póngase en contacto conmigo de forma privada para obtener asistencia con cualquier necesidad de BI a gran escala, tutoría, etc.
Salud
@AlB seguro, aquí hay un par de capturas de pantalla.
Aquí hay una fila de mi mesa. Como se puede ver, para la "duración" muestra 375.262. Esto es en minutos, por lo que sale a poco más de seis horas, como se muestra por la hora de inicio y la hora de finalización. Y como la hora de inicio era a las 4:06AM, el "date_hour" es a las 4AM para esa fecha.
Ahora, cuando se traza en un gráfico, así es como se ve. Esta vista muestra las 24 horas de una fecha para una máquina en particular. Esa barra larga representa el evento de tiempo de inactividad de 375 minutos, pero lo muestra como dentro de la hora 4AM, que es exactamente como se lo dije a Power BI. También puede ver que para las horas de 5 a. m. , 6 a. m., 7 a. m., 8 a. m. y 9 a. m. no muestra tiempos de inactividad, cuando en realidad el tiempo de inactividad de 375 minutos se ha arrastrado a lo largo de esas horas. Luego, en la hora de las 10 a. m. esa pequeña porción de una barra es para un evento de tiempo de inactividad que fue un poco más de un minuto, no relacionado con el grande.
Así que espero que haya una manera de "extender" los tiempos de inactividad que son más de 60 minutos, o si va de una hora a otra hora, para mostrar eso. Porque ahora mismo lo visual parece engañoso con cómo lo tengo.
1. Necesita una tabla de fecha y hora completa con todas las horas, sin huecos. También debe tener una tabla de fechas completa con todos los días del año (años completos) para evitar problemas inesperados.
2. No hay relación entre la tabla de fecha y hora y la tabla principal
3. Cree esta medida para el gráfico:
Measure =
VAR startSlot_ = SELECTEDVALUE('date hours'[date_hour])
VAR endSlot_ = startSlot_ + (1/24) //1 hour later
RETURN
SUMX(Main,
VAR aux_ = MIN(endSlot_,Main[end_time])- MAX(startSlot_, Main[start_time])
VAR timeInSlot_ = IF(aux_>=0, 24*60*aux_, 0)
RETURN
timeInSlot_)
4. Véalo todo en juego en el archivo adjunto
Por favor, marque la pregunta resuelta cuando haya terminado y considere dar un pulgar hacia arriba si las publicaciones son útiles.
Póngase en contacto conmigo de forma privada para obtener asistencia con cualquier necesidad de BI a gran escala, tutoría, etc.
Salud
Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City
Check out the April 2024 Power BI update to learn about new features.
User | Count |
---|---|
2 | |
2 | |
2 | |
2 | |
1 |