Suma de H:MM:SS

Un usuario Pregunto ✅

Jorgast

Hola a todos,

Soy nuevo en Power BI y estoy tratando de resolver este problema. tengo un campo llamado [talk time] en Excel que es formato H:MM SS. Llevé los datos a Power BI y cambié el formato a HH:MM SS. Lo que estoy tratando de hacer es sumar el [talk time] datos. Cuando solo uso el DAX de «SumTalkTime =Sum(TableName[talk time])” entonces obtengo 4:45:01 cuando debería ser 28:45:01. ¿Cómo hago para que Power BI muestre la suma correcta en el formato HH:MM SS?

Una vez que lo hago, tengo más columnas que tienen el mismo formato. Si quisiera agregar [SumTalkTime] a otra columna sumada llamémosla [SumTalk2], ¿simplemente usaría =Sum(SumTalkTime+ SumTalk2)”

Mientras miraba el foro, traté de sumar el tiempo de conversación usando solo la función de suma normal. Luego traté de regresar para cambiarlo al formato de hora que necesito usando la fórmula DAX a continuación y obtengo un error de conversión.

TT revisado = (IZQUIERDA(‘Resumen del estado del agente'[SumTalkTime],FIND(«:»,’Resumen de estado del agente'[SumTalkTime])-1)*60+RIGHT(‘Resumen de estado del agente'[SumTalkTime],LEN(‘Resumen de estado del agente'[SumTalkTime])-FIND(«:»,’Resumen de estado del agente'[SumTalkTime]))*1)/60

No se puede convertir el valor ’31/12/1899 12′ para escribir texto para escribir número

Aquí hay algunos datos de ejemplo

Tiempo de conversación

hablar 2

TOTAL

4:11:37

4:11:37

8:23:14

3:41:17

3:41:17

7:22:34

4:02:22

4:02:22

8:04:44

5:24:39

5:24:39

10:49:18

3:47:59

3:47:59

7:35:58

2:54:36

2:54:36

5:49:12

4:42:31

4:42:31

9:25:02

28:45:01

28:45:01

57:30:02

Jorgast

Gracias por las respuestas,

He probado una fórmula DAX que parece funcionar.

SumaTiempoConversación =

VAR TotalSeconds=SUMX(‘Nombre de tabla’,HORA(‘Nombre de tabla'[Column])*3600+MINUTO(‘Nombre de la tabla'[Column])*60+SEGUNDO(‘Nombre de la tabla'[Column]))
VAR Días =TRUNC(TotalSeconds/3600/24)
VAR Hors = TRUNC((TotalSeconds-Days*3600*24)/3600)
VAR Minutos =TRUNC(MOD(TotalSeconds,3600)/60)
VAR Segundos = MOD(TotalSeconds,60)
return SI(DÍAS=0,»»,»SI(DÍAS>1,DÍAS&»días «,Días&»día»))&SI(Hor<10,"0"&Hor,Hor)&":"&IF(Mins<10, "0"&Mins,Mins)&":"&IF(Secs<10,"0"&Secs,Secs)

MR84

También soy muy nuevo en Power Bi y me siento realmente fuera de mi profundidad tbh.

Estoy buscando algo muy similar a esto con una adición, quiero un total por mes / día, no solo un gran total.

Intenté las nuevas medidas (medidas rápidas) y simplemente parecen hacer un CountA en lugar de hacer una SUMA de los datos.

Cualquier ayuda sería apreciada y en términos ficticios. 😀

Jorgast

En respuesta a MR84

@MR84

Sin saber qué datos tiene, diría que lo más fácil es hacer todos los cálculos en segundos y luego convertirlos de segundos a tiempo. Eso ha sido lo que me funciona. Según lo que está buscando, desea hacer una matriz visual y tener Mes / Fecha como sus filas y el Formato (suma (tiempo en segundos) / 86400, «HH: MM: SS»). Power BI tiene algunos buenos tutoriales sobre los conceptos básicos de las imágenes, pero hay un montón de videos de Youtube por ahí.

espero que esto ayude

Divertirse

Bienvenido a Power BI

mgmenon

Hola @Jorgast,

Usé el DAX como se sugiere en esta publicación para resolver mi problema con la duración. Sin embargo, en la visualización de tabla o matriz cuando selecciono la duración total en orden ascendente/descendente, la duración del valor más alto aparece entre otras columnas en lugar de al final (ascendente) o al inicio (descendente). ¿Alguna idea de cómo colocar este valor en el orden de clasificación adecuado?

mgmenon_0-1616405415629.png

mgmenon_1-1616405441773.png

Duración total =
VAR TotalSeconds= SUMX(‘Total de llamadas-Mensual’,HOUR(‘Total de llamadas-Mensual'[Duration])*3600+MINUTO(‘Total de llamadas-Mensual'[Duration])*60+SEGUNDO(‘Total de llamadas-Mensual'[Duration]))
VAR Días =TRUNC(TotalSeconds/3600/24)
VAR Hors =TRUNC((TotalSeconds-Days*3600*24)/3600)
VAR Minutos =TRUNC(MOD(TotalSeconds,3600)/60)
VAR Segundos =MOD(TotalSegundos,60)
return IF((Horas + (Días*24))<10,"0"&(Horas + (Días*24)),(Horas + (Días*24)))&":"&SI(Mins<10," 0"&Mins,Mins)&":"&IF(Secs<10,"0"&Secs,Secs)

Jorgast

En respuesta a mgmenon

@mgmenon

Si tiene una columna de segundos totales, probablemente sea lo más fácil.

bsmcfaden

¿Cómo puedo convertir los días de vuelta para mostrar solo en horas: minutos: segundos? ¿Básicamente convertir mis 8 días en horas?

Quiero que se muestre – 200:00:08

Captura de pantalla 2020-09-16 103943.png

4thMeasure = VAR TotalSeconds= SUMX(‘Asignaciones de tiempo SAP’,HOUR(‘Asignaciones de tiempo SAP'[2ndMeasure])*3600+MINUTO(‘Asignaciones de tiempo SAP'[2ndMeasure])*60+SEGUNDO(‘Asignaciones de tiempo SAP'[2ndMeasure]))
/*HORA(‘Asignaciones de tiempo SAP'[SecondMeasure])*3600 + MINUTO(‘Asignaciones de tiempo SAP'[SecondMeasure])*60+SEGUNDO(‘Asignaciones de tiempo SAP'[SecondMeasure])*/

VAR Días =TRUNC(TotalSeconds/3600/24)
VAR Horas = TRUNC((TotalSeconds-Days*3600*24)/3600)
VAR Minutos =TRUNC(MOD(TotalSeconds,3600)/60)
VAR Segundos = MOD(TotalSeconds,60)
return SI(DÍAS=0,»»,»SI(DÍAS>1,DÍAS&»días «,Días&»día»))&SI(Horas<10,"0"&Horas,Horas)&":"&SI(Mins<10, "0"&Mins,Mins)&":"&IF(Secs<10,"0"&Secs,Secs)

Jorgast

Gracias por las respuestas,

He probado una fórmula DAX que parece funcionar.

SumaTiempoConversación =

VAR TotalSeconds=SUMX(‘Nombre de tabla’,HORA(‘Nombre de tabla'[Column])*3600+MINUTO(‘Nombre de la tabla'[Column])*60+SEGUNDO(‘Nombre de la tabla'[Column]))
VAR Días =TRUNC(TotalSeconds/3600/24)
VAR Hors = TRUNC((TotalSeconds-Days*3600*24)/3600)
VAR Minutos =TRUNC(MOD(TotalSeconds,3600)/60)
VAR Segundos = MOD(TotalSeconds,60)
return SI(DÍAS=0,»»,»SI(DÍAS>1,DÍAS&»días «,Días&»día»))&SI(Hor<10,"0"&Hor,Hor)&":"&IF(Mins<10, "0"&Mins,Mins)&":"&IF(Secs<10,"0"&Secs,Secs)

gteibo

En respuesta a Jorgast

¡Hola!

¿podría decirme cuál es su tipo de datos en esta columna?

Jorgast

En respuesta a gteibo

@gteibo

Para mí, los datos llegaron en segundos como un número entero.

elads

En respuesta a Jorgast

Corto y fácil, bien hecho.
Gracias 🙂

elads

En respuesta a elads

Corto y fácil, bien hecho.
Gracias @jorgast 🙂

nikhilmanohar

En respuesta a Jorgast

Tengo una situación similar pero con un cambio. Una de las columnas tiene un valor negativo. Su fórmula funcionó para 2 columnas pero dio un error para la columna de valor negativo. ¿Algúna idea de cómo arreglar esto?

Error_de_valor_negativo.JPG

Error_Captura de pantalla.JPG

Jorgast

En respuesta a nikhilmanohar

@nikhilmanohar

Sé que esto puede sonar muy básico, pero simplemente crearía una columna separada que verifique los valores negativos. Algo así como -IF(Tabla[Column] < 0, Tabla[Column]*-1, Tabla[Column])

Anónimo

Power BI no maneja la duración como un tipo de datos en este momento. Vea esta publicación para una discusión y una muestra de DAX (para PROMEDIO en lugar de SUMA) que maneja duraciones importadas: https://community.powerbi.com/t5/Desktop/Format-the-average-of-a-duration/td-p /95322

Y vote para mejorar esto aquí: https://ideas.powerbi.com/forums/265200-power-bi-ideas/suggestions/8814178-field-of-duration-type

En respuesta a Anónimo

Puede hacer esto en Power Query (Obtener datos) agregando una columna personalizada y convirtiendo su tiempo en horas decimales

= Hora.Hora([TimeColumn]) + Hora.Minuto([TimeColumn])/24)

DorotaS

En respuesta a Matt Allington

hola, gracias por esta idea, solo para informarle que para obtener el cálculo correcto del tiempo, debe dividir los minutos entre 60 y luego obtendrá los números decimales correctos, es decir. = Hora.Hora([TimeColumn]) + Hora.Minuto([TimeColumn])/60)

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *