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

Calcular la relación de suma de cada duración del estado Frente a la duración del tiempo operativo planificado

Hola

Actualmente estoy teniendo problemas con el cálculo de la relación entre la duración del tiempo de los estados de una máquina y la duración del tiempo operativo planificada.

La tabla PlannedOperationalActivity contiene la hora de inicio y finalización planificada del equipo.

PlannedOperationalActivityIDDeviceIDLunesStartDateTimeLunesEndDateTimeMartesStartDateTimeMartesEndDateTimeMiércolesStartDateTimeMiércolesEndDateTimeJuevesStartDateTimeJuevesEndDateTimeViernesStartDateTimeViernesEndDateTime
1109:00:0018:00:0009:00:0018:00:0009:00:0018:00:0009:00:0018:00:0009:00:0018:00:00
2209:00:0018:00:0009:00:0018:00:0008:30:0017:30:0009:00:0018:00:0009:00:0018:00:00
3309:00:0018:00:0009:00:0013:00:0009:00:0018:00:0009:00:0013:00:0009:00:0013:00:00

La tabla DeviceOperationalState contiene qué estado se ha producido y cuánto tiempo estuvo activo el estado.

DeviceOperationalStateIDDeviceIDOperativoStateIDStateDateTimeStartStateDateTimeEnd
11702/01/2021 08:0002/01/2021 09:00
21402/01/2021 09:0002/01/2021 11:14
31302/01/2021 11:1402/01/2021 14:05
41502/01/2021 14:0502/01/2021 14:10
51402/01/2021 14:1002/01/2021 18:00
61802/01/2021 18:0002/01/2021 18:31
73721/01/2021 08:0021/01/2021 09:00
83421/01/2021 09:0021/01/2021 18:00
93821/01/2021 18:0021/01/2021 19:00

Lo que quiero calcular es la suma de tiempo para cada estado de un DeviceID por un día y lo devide por la duración entre la duración planificada del día laborable correspondiente.

Un ejemplo es 21/01/2021 de DeviceID 3, que es un jueves. La suma de las duraciones de estado es 60+540+60=660mins

La actividad operativa prevista es ThursdayEndDateTime-ThursdayStartDateTime = 18:00:00-09:00:00 = 09:00:00 = 540mins.

La relación es de 660/540*100 = 122%. StatusID 7 = 11%, StatusID 4=100% y StatusID 8 = 11%.

En un gráfico quiero mostrar por día del mes que la máquina estaba activa cuál era la relación del tiempo operativo planificado frente al tiempo real en el que la barra de tiempo activa real total se divide en segmentos por estado.

La ayuda es muy apreciada.

1 ACCEPTED SOLUTION
Syndicate_Admin
Administrator
Administrator

No @Karel,

Estos son los pasos que puede seguir:

1. Hacer clic Transformar datos para entrar en la consulta de energía, seleccione [DeviceID], haga clic transformar – Columnas unpivot – Otras columnas unpivot

v-yangliu-msft_0-1617868952074.png

resultado:

v-yangliu-msft_1-1617868952083.png

2. Cree una columna calculada.

datediff = DATEDIFF([StateDateTimeStart],[StateDateTimeEnd],MINUTE)

resultado:

v-yangliu-msft_2-1617868952086.png

3. Cree una tabla calculada.

Summarize =
SUMMARIZE('Table (2)',[DeviceID],"Time duration",SUM('Table (2)'[datediff]),"Weekday",FORMAT(WEEKDAY(MAX('Table (2)'[StateDateTimeStart]),1),"dddd"))

resultado:

v-yangliu-msft_3-1617868952087.png

4. Cree una columna calculada.

Percent1 =
var _total=
SUMX(FILTER(ALL('Table (2)'),[DeviceID]=EARLIER('Table (2)'[DeviceID])),[datediff])
var _percent=
DIVIDE([datediff],_total)
var _related=
CALCULATE(MAX('Summarize'[Percent]),FILTER(ALL('Summarize'),[DeviceID]=EARLIER('Table (2)'[DeviceID])))
return
_related*_percent

5. Resultado:

v-yangliu-msft_4-1617868952090.png

Saludos

Liu Yang

Si este post ayuda, entonces 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 @Karel,

Estos son los pasos que puede seguir:

1. Hacer clic Transformar datos para entrar en la consulta de energía, seleccione [DeviceID], haga clic transformar – Columnas unpivot – Otras columnas unpivot

v-yangliu-msft_0-1617868952074.png

resultado:

v-yangliu-msft_1-1617868952083.png

2. Cree una columna calculada.

datediff = DATEDIFF([StateDateTimeStart],[StateDateTimeEnd],MINUTE)

resultado:

v-yangliu-msft_2-1617868952086.png

3. Cree una tabla calculada.

Summarize =
SUMMARIZE('Table (2)',[DeviceID],"Time duration",SUM('Table (2)'[datediff]),"Weekday",FORMAT(WEEKDAY(MAX('Table (2)'[StateDateTimeStart]),1),"dddd"))

resultado:

v-yangliu-msft_3-1617868952087.png

4. Cree una columna calculada.

Percent1 =
var _total=
SUMX(FILTER(ALL('Table (2)'),[DeviceID]=EARLIER('Table (2)'[DeviceID])),[datediff])
var _percent=
DIVIDE([datediff],_total)
var _related=
CALCULATE(MAX('Summarize'[Percent]),FILTER(ALL('Summarize'),[DeviceID]=EARLIER('Table (2)'[DeviceID])))
return
_related*_percent

5. Resultado:

v-yangliu-msft_4-1617868952090.png

Saludos

Liu Yang

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

Syndicate_Admin
Administrator
Administrator

@Karel tiempo diff = DATEDIFF(Sheet1[Hora de inicio],Sheet1[Hora de finalización],MINUTE)

Hola @HarishKM,

Gracias por responder.

Mientras sigo tus instrucciones me he quedado atascado una vez más.

Su solución está creando una medida para el tiempo operativo, suponiendo que se refiere a la misma fórmula (

TimeDiffOperationalState = DATEDIFF(DeviceOperationalState[StateDateTimeStart],DeviceOperationalState[StateDateTimeEnd],MINUTE)). Esta fórmula no es posible porque la medida no acepta nada más que una medida. Creé otra columna calculada en su lugar con la misma fórmula.
Al crear una medida para dividir ambas duraciones de tiempo, ambas columnas calculadas no se pueden seleccionar.
RatioTimeDurations = DIVIDE(PlannedOperationalActivity[ThursdayTimeDiffMin],DeviceOperationalState[TimeDiffOperationalStateColumn])
Además, esta fórmula sólo tendría en cuenta la diferencia horaria si el día de la semana es jueves. Si la fecha es el 22 de Januari 2021, la fórmula debe utilizar viernes Inicio y Fin como relación y si es el 20 de Januari 2021 la fórmula debe utilizar la diferencia horaria del miércoles como relación.
Intento adjuntar el archivo PBI, pero no se me permite.

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.