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

The ultimate Microsoft Fabric, Power BI, Azure AI & SQL learning event! Join us in Las Vegas from March 26-28, 2024. Use code MSCUST for a $100 discount. Register Now

Reply
Syndicate_Admin
Administrator
Administrator

¿Cómo trabajar con la duración correctamente?

¡Hola!


Soy nuevo en Power Bi, trabajando en mi primer informe. El objetivo es crear un gráfico que muestre cuántas horas espera el ingeniero del tren entre su check-in y la salida del tren. El objetivo es de 1h. Y también poder filtrar la información en función de días/meses/años.


Usando PQ creé una columna calculada ([DELTA_PERM) que muestra la diferencia entre "partida" (fecha/hora de salida) y "ap mq" (fecha/hora de check-in). Establecí estas columnas como "duración". Por lo que aprendí, el valor devuelto (como 0.01:00:00) significa 0 días + 1h + 0h minutos + 0 segundos. Otra columna que creé, (Meta_Estadia) tiene el objetivo (1).


Luego me mudé a DAX y creé una medida llamada "m_ESTADIA_1" para calcular el tiempo promedio que los ingenieros esperan usando la siguiente fórmula: (PROMEDIO('CIC MESCLADO'[DELTA_PERM]))*24.


A partir de ahí no puedo simplemente juntar todo en mi gráfico. O el objetivo aparece mal en el gráfico o no puedo mostrar el tiempo promedio como hora (HH: MM).


Aquí está el enlace pibx: https://www.dropbox.com/s/gcw07yuh4e6xsjk/BI%20CIC%20v2.pbix?dl=0

Y la fuente de datos: https://www.dropbox.com/s/w7lif6532z92x9i/Giro%20Locomotivas%20-%20Agosto%20V1.0.xlsm?dl=0

¿Tal vez debería usar datos / tiempo en serie, calcular todo y luego volver a la vista que necesito? Aprecia cualquier aporte.

¡Gracias!

1 ACCEPTED SOLUTION

Mira esto.

https://drive.google.com/file/d/1JyghX-9BuHN2dwQI5vH191ijs7JiFruC/view?usp=sharing

Utilice la información sobre herramientas para ver la hora en HH:MM

aj1973_0-1635192604540.png

View solution in original post

9 REPLIES 9
Syndicate_Admin
Administrator
Administrator

Hola Pat!

Gracias por su respuesta, pero desafortunadamente no pude descubrir cómo aplicar el contenido de su publicación / video en mi proyecto.


Primero divido todas las fechas / horas en fecha y hora separadas. Luego creé una columna personalizada con una fórmula DAX:
Estadia = IF('CIC MESCLADO'[PARTIDA]=BLANK(), BLANK(), (FIXED( ('CIC MESCLADO'[PARTIDA]-'CIC MESCLADO'[AP MQ]) , 6)))
Por lo tanto, calculará la diferencia entre los valores de "partida" y "ap mq". Primero no usé la oración if y algunos valores se calcularon como negativos (porque no había nada en "partida"). Entonces decidí jugar como excel (uso mucho este tipo de expresión) por lo que solo calculará si ambos campos tienen datos.

Luego probé una medida como la que dijiste en el video como esta:
m_Estadia =
VAR rawresult =
SUMX('CIC MESCLADO','CIC MESCLADO'[DATA_S_PROG]-'CIC MESCLADO'[DATA_S_AP])
Resultado VAR =
FIJO ( rawresult, 4 )
DEVOLUCIÓN
resultado

Pero el resultado que me mostró usar una tarjeta fue un valor negativo.

En pocas palabras: O soy demasiado tonto para entender esto o estoy intentando algo muy duro ...

Hay @PStavis

Nada difícil, solo estás mezclando tus cálculos, es como si estuvieras agregando la suma de papas de la suma de tomates jajaja.

La división de todas las columnas de fecha y hora en sus modelos es mejor hacerlo en Power Query, ¿es este el caso?

¿Puede reenviar el archivo con las nuevas modificaciones? Quiero ver cómo divides las columnas y qué resultado esperas.

Aquí está el nuevo archivo: https://www.dropbox.com/s/tedg29ovkf8gewl/BI%20CIC%20v2.2.pbix?dl=0


No veo el punto dividiendo todas las columnas de fecha / hora y luego usar una función DAX para unirse de nuevo como sugirió Pat: ( Activity[StopDate] + Activity[StopTime] ) – ( Activity[StartDate] + Activity[StartTime] )


Lo que necesito es simplemente calcular la diferencia entre columnas "partida" - "ap mq" y calcular el tiempo promedio para un día, mes, año y poder filtrarlo.


Encontré otra sugerencia en un video tutorial usando la conversión a segundos transcurridos, luego haces los cálculos usando los segundos y finalmente lo formateas como hh: mm. Funcionó un poco, pero hay un problema con el redondeo de los decimales subyacentes. Cuando ingrese algunas fechas / horas, en lugar de seguir exactamente lo que usé (como 25/10/2021 13:00) aparecerá como 25/10/2021 12:59 y esos segundos terminan desajustándose mucho cuando sumas las cosas.

@PStavis

Parece que en su caso no habría necesidad de dividirse.

Entonces, ¿estás interesado en ver Segundos en tu tarjeta? o ¿Minutos? ¿U horas?

Estoy tratando de agregar una columna para Estadia de una manera diferente y luego convertida en lo que necesita.

aj1973_0-1635184509723.png

aj1973_1-1635184611894.png

Lo que necesito es construir un gráfico como este:

PStavis_0-1635186234772.png

Es básicamente el promedio de "estadia" (que se calcula a partir de "partida" - "ap mq") para cada día y hay una línea que muestra el objetivo (01:00 hora).

También planeo construir más informes basados en la diferencia horaria, es por eso que también estoy tratando de entenderlo.

PD: La imagen adjunta proviene de un informe enviado por correo electrónico, no tengo acceso a los archivos originales para extraer los datos utilizados allí, por eso estoy construyendo uno en bi

Mira esto.

https://drive.google.com/file/d/1JyghX-9BuHN2dwQI5vH191ijs7JiFruC/view?usp=sharing

Utilice la información sobre herramientas para ver la hora en HH:MM

aj1973_0-1635192604540.png

Cambié un poco su gráfico para que se muestre correctamente (la línea "hora" se establece como 1, mientras que la barra en el gráfico muestra 60, acabo de dividir la medida por 60).

PStavis_0-1635194879791.png

Pero tu solución es muy buena, estoy estudiando lo que hiciste para replicar por mí mismo. Pondré este como resuelto.

Una cosa que todavía me molesta es el redondeo en la pestaña de datos. Como este:

PStavis_1-1635194967780.png

A pesar de que los datos originales son 19/10/2021 20:00:00 debido a un poco de redondeo, pierde un segundo en la pestaña de datos, y cuando calculas cosas terminas con uno más o un segundo menos:

PStavis_2-1635195037796.png

Como este cálculo que devuelve 121 segundos pero mis datos no tienen segundos (se supone que solo devuelve 120 segundos).

Supongo que tengo que vivir con esta diferencia.

¡Muchas gracias sr. Amine y sr. Pat!

Así que pude encontrar la manera de corregir esos problemas redondos que dije antes. Todavía estoy estudiando de una manera mejor, pero hasta ahora lo que hice:

1) Usando Power Query, cree una nueva columna calculada: Fecha/hora 1 - fecha/hora 2.

2) Transformar la columna en una Duration.TotalMinutes, lo hice usando las opciones de la barra superior (Duración -> Minutos totales).

3) Redondea la columna.


Ahora, en lugar de mostrar 00:59:59.09985, por ejemplo, redondea hasta 60 minutos.

No es un gran problema si está calculando el promedio de algunas horas, pero en los grandes cálculos, cada minuto perdido arrojará el resultado durante un par de horas tal vez.

¡Espero que ayude a cualquier persona con problemas similares!

Syndicate_Admin
Administrator
Administrator

Por favor, vea este artículo.

Calcular y formatear duraciones en DAX – Hoosier BI

Palmadita

Helpful resources

Announcements
Fabric Community Conference

Microsoft Fabric Community Conference

Join us at our first-ever Microsoft Fabric Community Conference, March 26-28, 2024 in Las Vegas with 100+ sessions by community experts and Microsoft engineering.

Top Solution Authors