Convertir días decimales a días:hrs:min

Un usuario Pregunto ✅

icdns

Hola,

Necesito su ayuda para convertir mis días decimales a este formato (Días Horas Min)

¿Es posible?

ejemplos:

– 1.5 sería «1 día 12 horas»
– 0.25 sería «0 día 6 horas»

¡Gracias! 🙂

En respuesta a icdns

@icdns
Fecha en Texto2 =
VAR DecimalDateCheck= IF(CONTAINSSTRING(‘Artículo'[Decimal Date],».»),»Y»,»N»)
VAR DateIntegerPart= TRUNC(‘Artículo'[Decimal Date]) //1
VAR DateDecimalPart= RIGHT(‘Artículo'[Decimal Date],LARGO(‘Artículo'[Decimal Date])-BUSCAR(«.»,’Artículo'[Decimal Date],,0))//2
VAR Días = CONCATENAR(DateIntegerPart,IF(DateIntegerPart = 1, » Day «, » Days «)) //1 Día
VAR DecimalHours = DIVIDE(DateDecimalPart, 10) * 24 //4.8
VAR DecimalHourCheck= IF(CONTAINSSTRING(DecimalHours,».»),»Y»,»N»)
VAR Horas = CONCATENAR( TRUNC(DecimalHours), » Horas «) //4
VAR HourDecimalPart = RIGHT(DecimalHours,LEN(DecimalHours)-SEARCH(«.»,DecimalHours,,0))//8
VAR Minutos = CONCATENAR( TRUNC(DIVIDE(HourDecimalPart, 10) * 60), » Minutos») //48
Retorna IF(DecimalDateCheck=»N»,CONCATENATE(‘Item'[Decimal Date]»Días»),SI(DecimalHourCheck=»N», CONCATENAR(Días,Horas),CONCATENAR(CONCATENAR(Días,Horas),Minutos)))
Captura de pantalla del resultado aquí:Captura de pantalla 2020-10-13 215840.png

Aquí están las fórmulas para la fecha en días y horas. Lo mismo se puede replicar para Minutos también.

Fecha en Texto =
VAR ParteEntero= Trunc(‘Elemento'[Decimal Date])
VAR ParteDecimal= DERECHA(‘Artículo'[Decimal Date],LARGO(‘Artículo'[Decimal Date])-BUSCAR(«.»,’Artículo'[Decimal Date]))
VAR Días = CONCATENAR(IntegerPart,» Días»)
VAR Horas = CONCATENAR( DIVIDIR(ParteDecimal, 10) * 24, » Horas»)
Retornar CONCATENAR(Días,Horas)

icdns

En respuesta a megha166

Hola @Megha166,

Intenté crear una columna, pero encontré el siguiente error: ¿qué significa? 🙂

icdns_0-1602651076203.png

¡Gracias!

En respuesta a icdns

Captura de pantalla 2020-10-13 215840.pngEsta es la solución completa con código de Minutos también. Y su fone de trabajo para mí. Arriba está la captura de pantalla del resultado. ¿Cuál es el tipo de datos de la columna de fecha? O ¿Puede compartir la captura de pantalla de los datos y el error?

@icdns escribió:

Hola @Megha166,

Intenté crear una columna, pero encontré el siguiente error: ¿qué significa? 🙂

icdns_0-1602651076203.png

¡Gracias!


icdns

En respuesta a megha166

Hola, @Megha166,

Mi fecha decimal está en tipo de datos decimal 🙂 tambien es posible?

¡Gracias!

En respuesta a icdns

Envíe la captura de pantalla o verifique si la captura de pantalla anterior ayuda. Básicamente, el error que está recibiendo dice que SEARCHh no puede encontrar «.» en la fecha Mi código está encontrando «.» en la fecha y luego separándola en números enteros y decimales.

icdns

En respuesta a megha166

Hola @Megha166,

Estoy recibiendo este error. a continuación se muestra la captura de pantalla:

mi DÍAS MÁXIMOS DE PROCESAMIENTO DE QUEJAS está en FORMATO DECIMAL.

icdns_1-1602652303638.png

¡Gracias! 🙂

icdns

En respuesta a icdns

Hola @Megha166,

Ohh ya veo… estos son los datos de muestra:

Es un poco raro… también tiene un «.»

icdns_1-1602652625417.png

En respuesta a icdns

Veo que hay tantos valores como 0 (SIN ningún decimal). Estos valores están arrojando el error. Dame algo de tiempo. Permítanme manejar estos escenarios también en el código DAX.

¿Puede darme también el resultado esperado de las fechas de muestra? Me ayudaría a probar el código.

icdns

En respuesta a megha166

¡¡¡Muchas gracias!!! @Megha166

En respuesta a icdns

@icdns
Fecha en Texto2 =
VAR DecimalDateCheck= IF(CONTAINSSTRING(‘Artículo'[Decimal Date],».»),»Y»,»N»)
VAR DateIntegerPart= TRUNC(‘Artículo'[Decimal Date]) //1
VAR DateDecimalPart= RIGHT(‘Artículo'[Decimal Date],LARGO(‘Artículo'[Decimal Date])-BUSCAR(«.»,’Artículo'[Decimal Date],,0))//2
VAR Días = CONCATENAR(DateIntegerPart,IF(DateIntegerPart = 1, » Day «, » Days «)) //1 Día
VAR DecimalHours = DIVIDE(DateDecimalPart, 10) * 24 //4.8
VAR DecimalHourCheck= IF(CONTAINSSTRING(DecimalHours,».»),»Y»,»N»)
VAR Horas = CONCATENAR( TRUNC(DecimalHours), » Horas «) //4
VAR HourDecimalPart = RIGHT(DecimalHours,LEN(DecimalHours)-SEARCH(«.»,DecimalHours,,0))//8
VAR Minutos = CONCATENAR( TRUNC(DIVIDE(HourDecimalPart, 10) * 60), » Minutos») //48
Retorna IF(DecimalDateCheck=»N»,CONCATENATE(‘Item'[Decimal Date]»Días»),SI(DecimalHourCheck=»N», CONCATENAR(Días,Horas),CONCATENAR(CONCATENAR(Días,Horas),Minutos)))
Captura de pantalla del resultado aquí:Captura de pantalla 2020-10-13 215840.png

icdns

En respuesta a megha166

Hola @Megha166,

¡Wow esto es genial! Probé la columna lógica (Fecha en el texto 2) … pero aparece resaltado …

por cierto, el máximo de MAX_FORMAT es el correcto. ¿puedo convertir el 9967222222223 a solo 9 horas? 🙂

¡¡Muchas gracias!! lo siento soy muy nuevo en powerbi

icdns_1-1602655067299.png

En respuesta a icdns

@icdns

Por favor, dame la fecha de entrada exacta que está dando este gran 9999 ***** horas. Además, felicite a las respuestas si lo están ayudando. 🙂. Ese es el pulgar hacia arriba debajo de mis respuestas.

icdns

En respuesta a megha166

¡¡Muchas gracias por la ayuda!! 😄 Para el resaltado 9996xxxxxxx, vino de la medida (max_complaint_processing_date):

icdns_0-1602655671597.png

En respuesta a icdns

@icdns Megha166_0-1602656497438.png

Debe proporcionar el cálculo completo si esa es la fecha de entrada. Upper Code simplemente se truncaría para obtener el primer carácter de las horas (aquí 9).

En respuesta a megha166

Márcalo como Resuelto si esto resuelve tu pregunta.

icdns

En respuesta a megha166

Intentaré explorar más sobre esto. Realmente una gran ayuda!

¡Gracias! @Megha166

En respuesta a icdns

No hay problema. Vuelva a publicar el problema si aún encuentra algún problema. Etiquétame a mí también. 🙂

icdns

En respuesta a icdns

Hola @Megha166,

¿Están sus días decimales en el tipo de datos Decimal?

En respuesta a megha166

¿Me puede dar la fecha exacta que está utilizando?

Deja un comentario

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