Convertir minutos en días y formato de hora

Un usuario Pregunto ✅

JWE

Hola amigos

Quiero convertir minutos en cosas legibles para los usuarios finales, por ejemplo:

yo tengo 2.480,08 minutos

Quiero formatear esto en duración (pero no en formato de hora) porque el valor es superior a 24 horas.

El resultado debe ser:

1 día 08:22:16

Pero sin VAR, esta ralentización de todas mis visualizaciones, ¿no es así?

¿Cómo proceder?

Gracias de antemano Jorg

JWE

En respuesta a v-shex-msft

Hola, gracias, funciona. ¡Es de esperar que la función VAR funcione lo suficientemente rápido también con big data!

He modificado su DAX, para mostrar los días o no, y el día de trabajo de horas tiene solo 15 horas, por lo que lo divido entre 900 en lugar de 1440.

NOSOTROS Dauer gesamt =
var Etiqueta = INT (Lagerbeleg[WE Dauer in Min] / 900)
var Stunde = INT (MOD (Lagerbeleg[WE Dauer in Min]; 900) / 60)
var Minuto = MOD (MOD (Lagerbeleg[WE Dauer in Min]; 900); 60)
var Sekunde = INT ((Lagerbeleg[WE Dauer in Min] – INT (Lagerbeleg[WE Dauer in Min])) * 60)
regreso
SI (Etiqueta = 0; «»;
IF (Etiqueta> 1; Etiqueta y «Etiqueta»; Etiqueta y «Etiqueta»))
& FORMAT (Stunde; «# 00»)
& «:»
& FORMAT (MINUTE; «# 00»)
& «:» &
FORMATO (Sekunde; «# 00»)

Hola @JWE,

Puede intentar usar la fórmula de Belwo si funciona de su lado:

Formato =
var dayNo = INT ([Minutes]/ 1440)
var hora No = INT (MOD ([Minutes], 1440) / 60)
var minutoNO = MOD (MOD ([Minutes], 1440), 60)
var secondNo = INT (([Minutes]-EN T([Minutes])) * 60)
regreso
dayNo & «day» & FORMAT (hourNo, «# 00») & «:» & FORMAT (minuteNO, «# 00») & «:» & FORMAT (secondNo, «# 00»)

Capture.PNG

Saludos,

Xiaoxin Sheng

Dhrubojit

En respuesta a v-shex-msft

Hola @ v-shex-msft Gracias por esta publicación. ¿Podría ayudarme a hacer la misma consulta un poco personalizada o precisa? .

p.ej
1 día 1:00:00 horas
1 día 00:55:70 Minutos

es decir, si la hora está presente, muestre el sufijo como horas
Si el tiempo es menor, la hora muestra el sufijo como minutos

christianfcbmx

En respuesta a v-shex-msft

Hola @ v-shex-msft, ¿Podrías decirme cómo debería ser esta fórmula si solo quiero horas y minutos?

¡¡¡Agradecería su ayuda por adelantado !!!

Formato =
var dayNo = INT ([Minutes]/ 1440)
var hora No = INT (MOD ([Minutes], 1440) / 60)
var minutoNO = MOD (MOD ([Minutes], 1440), 60)
var secondNo = INT (([Minutes]-EN T([Minutes])) * 60)
regreso
dayNo & «day» & FORMAT (hourNo, «# 00») & «:» & FORMAT (minuteNO, «# 00») & «:» & FORMAT (secondNo, «# 00»)

Anónimo

En respuesta a christianfcbmx

Hola @JWE,

La fórmula DAX mencionada a continuación también funciona para mí. Pero cuando intenté agregar dos filas,

DW.JPG

No obtengo el resultado deseado porque el valor se toma como Primero o Último o Contar pero no Suma Como se menciona abajo.

PD: Estoy usando Impala como mi fuente de datos.

D.JPG

¿Puedes ayudarme a conseguir esto?

Gracias,

Akhil.

JWE

En respuesta a Anónimo

Hola Akhil

lo siento pero no tengo ni idea. Solo trabajo con DAX en la medida y visualizo los resultados sin usar más funciones de campo. En este caso obtengo la suma correcta.

Saludos Jorg

Anónimo

En respuesta a JWE

Hola @JWE,

¡Gracias por su respuesta!

¿Puedo hacer que la misma fórmula funcione con la medida en lugar de crear una nueva columna usando el DAX a continuación?

Time_Format =

var dayNo = INT ([time]/ 1440)
var hora No = INT (MOD ([time], 1440) / 60)
var minutoNO = MOD (MOD ([time], 1440), 60)
var secondNo = INT (([lingertime]-EN T([time])) * 60)
regreso
dayNo & «day» & FORMAT (hourNo, «# 00») & «:» & FORMAT (minuteNO, «# 00») & «:» & FORMAT (secondNo, «# 00»)

Gracias,

Akhil.

JWE

En respuesta a Anónimo

Sí, creo que sí, pero sabes que la medida no es lo mismo que la columna calculada.

Por debajo de la medida que utilicé:

NOSOTROS Dauer gesamt =
var Etiqueta = INT (Lagerbeleg[Hilfsmeasure WE Dauer in Min] / 900)
var Stunde = INT (MOD (Lagerbeleg[Hilfsmeasure WE Dauer in Min] ; 900) / 60)
var Minuten = INT (MOD (MOD (Lagerbeleg[Hilfsmeasure WE Dauer in Min] ; 900); 60))
var Sekunde = INT ((Lagerbeleg[Hilfsmeasure WE Dauer in Min]
– INT (Lagerbeleg[Hilfsmeasure WE Dauer in Min] )) * 60)
regreso
SI (Etiqueta = 0; «»;
IF (Etiqueta> 1; Etiqueta y «Etiqueta»; Etiqueta y «Etiqueta»))
& FORMAT (Stunde; «# 00»)
& «:»
& FORMAT (Minuten; «# 00»)

dentro de esto usé:

Hilfsmeasure WE Dauer en Min =
SUMX (FILTRO (
Lagerbeleg;
Lagerbeleg[Startdatum] = Lagerbeleg[Endedatum]
&& Lagerbeleg[Endezeit] = Lagerbeleg[MaxEndeZeit]
&& Lagerbeleg[LagerPosNr] = 1);
Lagerbeleg[Yakar Dauer Min gesamt])
+ (SUM (Lagerbeleg[Hilfsspalte WE > 1 T Sum]))
& «:» &
FORMATO (Sekunde; «# 00»)

Anónimo

En respuesta a JWE

Hola Jorg @JWE,

Lo siento, no entiendo el DAX mencionado a continuación. ¿Me pueden enviar en inglés sencillo (inglés de EE. UU.)?

NOSOTROS Dauer gesamt =
var Etiqueta = INT (Lagerbeleg[Hilfsmeasure WE Dauer in Min] / 900)
var Stunde = INT (MOD (Lagerbeleg[Hilfsmeasure WE Dauer in Min] ; 900) / 60)
var Minuten = INT (MOD (MOD (Lagerbeleg[Hilfsmeasure WE Dauer in Min] ; 900); 60))
var Sekunde = INT ((Lagerbeleg[Hilfsmeasure WE Dauer in Min]
– INT (Lagerbeleg[Hilfsmeasure WE Dauer in Min] )) * 60)
regreso
SI (Etiqueta = 0; «»;
IF (Etiqueta> 1; Etiqueta y «Etiqueta»; Etiqueta y «Etiqueta»))
& FORMAT (Stunde; «# 00»)
& «:»
& FORMAT (Minuten; «# 00»)

dentro de esto usé:

Hilfsmeasure WE Dauer en Min =
SUMX (FILTRO (
Lagerbeleg;
Lagerbeleg[Startdatum] = Lagerbeleg[Endedatum]
&& Lagerbeleg[Endezeit] = Lagerbeleg[MaxEndeZeit]
&& Lagerbeleg[LagerPosNr] = 1);
Lagerbeleg[Yakar Dauer Min gesamt])
+ (SUM (Lagerbeleg[Hilfsspalte WE > 1 T Sum]))
& «:» &
FORMATO (Sekunde; «# 00»)

También estoy pensando, ¿podemos convertir el siguiente DAX a SQL?

Time_Format =

var dayNo = INT ([time]/ 1440)
var hora No = INT (MOD ([time], 1440) / 60)
var minutoNO = MOD (MOD ([time], 1440), 60)
var secondNo = INT (([lingertime]-EN T([time])) * 60)
regreso
dayNo & «day» & FORMAT (hourNo, «# 00») & «:» & FORMAT (minuteNO, «# 00») & «:» & FORMAT (secondNo, «# 00»)

Gracias,

Akhil.

christianfcbmx

En respuesta a v-shex-msft

Hola … Soy Christián y creo que necesito algo así …! mi pregunta es si puede sumar esa columna. por ejemplo: 4 días; 8: 59 + 2 días: 3: 01 obteniendo como resultado = 6 días: 12: 00?

JWE

En respuesta a christianfcbmx

Hola

sí, después de calcular la suma (como la medida anterior, o algo más), y luego utilicé una segunda medida para mostrar los días y también las horas.

NOSOTROS Dauer (Zeit) =
SI (
[Einl Dauer Sum] > 0;
FORMATO (INT ( [Einl Dauer Sum] / (24/1 * 15)); «# 00T»)
& FORMATO (MOD ( [Einl Dauer Sum]; (1/24 * 15)); «HH: MM: SS»)
)

(En este caso utilizo 15, porque nuestros días laborables no son 24 horas, solo 15 horas).

JWE

En respuesta a v-shex-msft

Hola, gracias, funciona. Ojalá la función VAR ¡Funciona lo suficientemente rápido también con big data!

He modificado su DAX, para mostrar los días o no, y el día de trabajo de horas tiene solo 15 horas, por lo que lo divido entre 900 en lugar de 1440.

NOSOTROS Dauer gesamt =
var Etiqueta = INT (Lagerbeleg[WE Dauer in Min] / 900)
var Stunde = INT (MOD (Lagerbeleg[WE Dauer in Min]; 900) / 60)
var Minuto = MOD (MOD (Lagerbeleg[WE Dauer in Min]; 900); 60)
var Sekunde = INT ((Lagerbeleg[WE Dauer in Min] – INT (Lagerbeleg[WE Dauer in Min])) * 60)
regreso
SI (Etiqueta = 0; «»;
IF (Etiqueta> 1; Etiqueta y «Etiqueta»; Etiqueta y «Etiqueta»))
& FORMAT (Stunde; «# 00»)
& «:»
& FORMAT (MINUTE; «# 00»)
& «:» &
FORMATO (Sekunde; «# 00»)

Deja un comentario

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