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

Get inspired! Check out the entries from the Power BI DataViz World Championships preliminary rounds and give kudos to your favorites. View the vizzies.

Reply
Syndicate_Admin
Administrator
Administrator

Obtener la diferencia de fecha y hora en la duración como tiempo - o por qué necesito dd.hh.mm.ss

Necesito cumplir con un informe que calcule los SLA.

Obtuve mis datos de statuscake en "períodos", lo que significa que obtuve períodos en los que el servicio está en marcha y períodos en los que el servicio está caído.

ejemplo:

empezarfinestado
31.05.2021 17:2501.06.2021 00:00hacia arriba
31.05.2021 17:2431.05.2021 17:24abajo
30.05.2021 12:2530.05.2021 12:25hacia arriba
30.05.2021 12:2430.05.2021 12:24abajo
25.05.2021 21:4925.05.2021 21:49hacia arriba


Ahora, logro extraer la diferencia entre las fechas con:

DATEDIFF([Start],[End],SECOND),

Esto me da segundos. Que podría usar para crear un informe "Suma de segundos por estado".
Pero sería bueno tener un "Días, Horas, Minutos, Segundos por Estado" en su lugar.

Ya investigué un poco sobre este tema, y encontré muchas maneras de calucate Tiempo de segundos en hh:mm:ss, que parece ser un formato compatible - hasta - tienes más de 24h marcos de tiempo.
Así que encontré maneras de formatear d:hh:mm:ss o d.hh:mm:ss - pero este formato no es conocido por PowerBi, como parece - y por lo tanto no puedo obtener una "SUMA por estado".

Cualquier ayuda es apreciada.

1 ACCEPTED SOLUTION

Hola @SysLostInBI
aunque podría "agrupar", no hará cálculos porque el tipo de duration(format: dd:hh:mm:ss) es string. por cierto, no hay ningún formato de duration(dd:hh:mm:ss) compatible con Power BI, al menos por ahora. así que te sugiero que hagas cálculos manualmente.

Puede crear una medida y agrupar los datos por status(Down, Up), luego puede usar function left(), MID(), RIGHT() para obtener cada parte en duration(format: dd:hh:mm:ss, 4 partes), luego usar function value() para convertir el tipo de string a int. Finalmente, calcule cada parte por separado y combine 4 partes en una sola.
Fyi:
https://docs.microsoft.com/en-us/dax/text-functions-dax

Un ejemplo rápido (no exactamente igual, pero la lógica es similar😃),

https://community.powerbi.com/t5/Desktop/Count-With-Multiple-Conditions-DAX/td-p/1858846

si usted tiene más preguntas, por favor hágamelo saber.

Saludos

Equipo de apoyo a la comunidad _ Tang

Si este post ayuda,por favor considere Aceptarlo como la solución✔️ para ayudar a los otros miembros a encontrarlo más rápidamente.

View solution in original post

3 REPLIES 3
Syndicate_Admin
Administrator
Administrator

No @SysLostInBI

En función de su descripción, desea calcular los "días, horas, minutos, segundos por estado" en lugar de "suma de segundos por estado", pero en Power BI no hay ningún formato de este tipo. Así que le sugiero que cree la columna y mida a continuación para personalizar su formato "day:hh:mm:ss", por ejemplo.

secondsColumn = DATEDIFF('Table'[Start],'Table'[End],SECOND)
d:hh:mm:ss perstatus = 
var _sumseconds_perstatus=CALCULATE(SUM('Table'[secondsCol]),ALLEXCEPT('Table','Table'[Status]))//calculate sum seconds per status
var _day=INT(_sumseconds_perstatus/(24*3600))
var _hour=INT((_sumseconds_perstatus-_day*(24*3600))/3600)
var _min=INT((_sumseconds_perstatus-_day*(24*3600)-_hour*3600)/60)
var _sec=INT((_sumseconds_perstatus-_day*(24*3600)-_hour*3600-_min*60))
return
_day&":"&_hour&":"&_min&":"&_sec

v-xiaotang_2-1623122334860.png

Consulte el archivo de ejemplo adjunto a continuación.

Saludos

Equipo de apoyo a la comunidad _ Tang

Si este post ayuda,por favor considere Aceptarlo como la solución✔️ para ayudar a los otros miembros a encontrarlo más rápidamente.

Hey muchas gracias @v-xiaotang
Ya lo logré. Lo siento si no estaba claro acerca de esto.
Mi problema es que me quedo con esto después. Lo que necesitaría es una opción para calcular estos valores después.

Por lo tanto, digamos que tengo:

SysLostInBI_0-1623851990937.png


Mi resultado debe ser:
Subir: 10 días
Abajo: 3 días y 1h

Supongo que tendría que crear otra tabla para esto - como la "duración" soporte de PowerBI es débil para este derecho? Quiero decir que la mejor opción sería si pudiera simplemente "agruparlo", y se calcula.

Hola @SysLostInBI
aunque podría "agrupar", no hará cálculos porque el tipo de duration(format: dd:hh:mm:ss) es string. por cierto, no hay ningún formato de duration(dd:hh:mm:ss) compatible con Power BI, al menos por ahora. así que te sugiero que hagas cálculos manualmente.

Puede crear una medida y agrupar los datos por status(Down, Up), luego puede usar function left(), MID(), RIGHT() para obtener cada parte en duration(format: dd:hh:mm:ss, 4 partes), luego usar function value() para convertir el tipo de string a int. Finalmente, calcule cada parte por separado y combine 4 partes en una sola.
Fyi:
https://docs.microsoft.com/en-us/dax/text-functions-dax

Un ejemplo rápido (no exactamente igual, pero la lógica es similar😃),

https://community.powerbi.com/t5/Desktop/Count-With-Multiple-Conditions-DAX/td-p/1858846

si usted tiene más preguntas, por favor hágamelo saber.

Saludos

Equipo de apoyo a la comunidad _ Tang

Si este post ayuda,por favor considere Aceptarlo como la solución✔️ para ayudar a los otros miembros a encontrarlo más rápidamente.

Helpful resources

Announcements
Las Vegas 2025

Join us at the Microsoft Fabric Community Conference

March 31 - April 2, 2025, in Las Vegas, Nevada. Use code FABINSIDER for a $400 discount!

FebPBI_Carousel

Power BI Monthly Update - February 2025

Check out the February 2025 Power BI update to learn about new features.

March2025 Carousel

Fabric Community Update - March 2025

Find out what's new and trending in the Fabric community.

Top Solution Authors
Top Kudoed Authors