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

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.

Reply
Syndicate_Admin
Administrator
Administrator

Tiempo de duración dividido por hora

Estimados expertos,
Me preguntaba si podría ayudarme con una fórmula / visualización, que me gustaría agregar en uno de nuestros informes.
Nos gustaría mostrar el tiempo de trabajo del BOT por hora, todos los días de la semana.

SanKing_0-1710162343320.png

Tengo un problema con los procesos que a veces tardan varias horas.
Cuando trato de mostrar la SUMA de la duración, el gráfico tarda toda la duración (estas varias horas) en la hora de inicio.

SanKing_1-1710162399172.png


¿Podría aconsejarme cómo calcularlos para que se muestren correctamente?
¡Gracias de antemano!
Saludos

4 REPLIES 4
Syndicate_Admin
Administrator
Administrator

Hola @सँकिंग ,

Basándome en su descripción, creé estos datos.

vkaiyuemsft_0-1711090871179.png

1. Cree una columna calculada, con las horas de inicio y finalización en el pasado.

Start_1 =
DATE(
YEAR('Table'[StartTime]),MONTH('Table'[StartTime]),DAY('Table'[StartTime]))+TIME(HOUR('Table'[StartTime]),0,0)

End_1 =
DATE(
YEAR('Table'[EndTime]),MONTH('Table'[EndTime]),DAY('Table'[EndTime]))+TIME(HOUR('Table'[EndTime]),0,0)

2. Crea una hoja de cálculo para obtener cada hora de cada día.

Table 2 =
GENERATESERIES(
DATE(2024,1,3),DATE(2024,1,5),0.041666667)

3. Cree una columna calculada en la tabla de cálculo para obtener las horas entre las fechas de inicio y finalización.

con1 =
var_min=
MAXX(FILTER(ALL('Table'),
'Table'[Start_1]=EARLIER('Table 2'[Value])),[Start_1])
var_max=
MAXX(FILTER(ALL('Table'),
'Table'[Start_1]=_min),[End_1])
return
CONCATENATEX(
FILTER(ALL('Table 2'),
'Table 2'[Value]>_min&&'Table 2'[Value]<_max),[Value],"-")

con2 =
CONCATENATEX(
'Table 2','Table 2'[con1],"-")

4. Crear medida.

Test =
var_minstart=
DATE(
YEAR(MAX('Table 2'[Value])),MONTH(MAX('Table 2'[Value])),DAY(MAX('Table 2'[Value])))+TIME(HOUR(MAX(' Table 2'[Value]))+1,0,0)
var_maxend=
DATE(
YEAR(MAX('Table 2'[Value])),MONTH(MAX('Table 2'[Value])),DAY(MAX('Table 2'[Value])))+TIME(HOUR(MAX(' Table 2'[Value])),0,0)
var_min1=
MINX(FILTER(ALL('Table'),'Table'[Start_1]=MAX('Table 2'[Value])),[StartTime])
var_max1=
MINX(FILTER(ALL('Table'),'Table'[End_1]=MAX('Table 2'[Value])),[EndTime])
var _min1111=
MINX(FILTER(ALL('Table'),'Table'[Start_1]=MAX('Table 2'[Value])),[Start_1])
var _max1111=
MAXX(FILTER(ALL('Table'),'Table'[Start_1]=MAX('Table 2'[Value])),[End_1])
RETURN
SWITCH(
TRUE(),
MAX('Table 2'[Value]) in SELECTCOLUMNS(ALL('Table'),"end",'Table'[End_1]),
DATEDIFF(
_maxend,_max1,MINUTE),
MAX('Table 2'[Value]) in SELECTCOLUMNS(ALL('Table'),"start",'Table'[Start_1]),
DATEDIFF(
_min1,_minstart,MINUTE),
CONTAINSSTRING(MAX('Table 2'[con2]),MAX('Table 2'[Value]))=TRUE(),
60,
_min1111=_max1111,
DATEDIFF(
_min1,_max1,MINUTE)
)

Si su período actual no se refiere a esto, por favor aclárelo en una respuesta de seguimiento.

Saludos

Clara Gong

Si esta publicación ayuda, considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.

Syndicate_Admin
Administrator
Administrator

Estimado @v-kaiyue-msft ,

Mi pregunta no se relaciona con el problema del rendimiento.

Por ejemplo: tenemos conductores en nuestra empresa, cada conductor tiene viajes. Un conductor tiene un viaje que comienza el lunes a las 6:00 a.m. y termina a las 6:30 -> queremos mostrar lo que este conductor a las 6:00 tuvo un viaje de 0.5 horas. Pero a la 1:00 p.m., el mismo conductor comienza un viaje que dura hasta las 5 p.m., > queremos mostrar que cada hora desde la 1 p.m. hasta las 5 p.m., este conductor estaba teniendo el viaje. No queremos mostrar 4 horas acumuladas a la 1 PM.

Syndicate_Admin
Administrator
Administrator

@v-kaiyue-msft ,

Gracias por su respuesta.

No, no son problemas de rendimiento. Queremos mostrar la carga de BOT no relacionada con MS / PBI.

Tengo datos como mencioné en la descripción, que pueden extenderse por varias horas y estoy buscando una solución de cómo puedo mostrarlos en cada hora.

Por ejemplo, Process6 comenzó a ejecutarse a las 17:51 y se ejecutó durante 12 horas y 19 minutos, me gustaría mostrar este proceso en cada hora: 17:00 -> 9 minutos, 18:00 -> 60 minutos, ..., 6:00 (día siguiente) 10 minutos.

Syndicate_Admin
Administrator
Administrator

Hola @SanKing ,

¿Tiene problemas de rendimiento? Puede optimizar Power BI en términos de orígenes de datos, modelos de datos, visualizaciones, entornos, etc. Para obtener información detallada, consulte el documento: Guía de optimización para Power BI - Power BI | Microsoft Learn.

Si su período actual no se refiere a esto, por favor aclárelo en una respuesta de seguimiento.

Saludos

Clara Gong

Si esta publicación ayuda, considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.

Helpful resources

Announcements
Microsoft Fabric Learn Together

Microsoft Fabric Learn Together

Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City

PBI_APRIL_CAROUSEL1

Power BI Monthly Update - April 2024

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

April Fabric Community Update

Fabric Community Update - April 2024

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