Convertir el tipo de datos de texto a un número entero

Un usuario Pregunto ✅

Rajeshree91

(1) Hola, amigos de Power BI, ¿pueden ayudarme a convertir este tipo de datos de texto que está escrito en términos de día, hora, minuto y segundo?
a segundos porque no puedo usar el PROMEDIO (V_SLA[Business elapsed time]) la medida
(2) Necesito convertirlo en un número entero, encontrar el promedio y luego cambiar el formato al original.

Tiempo transcurrido de la empresa.jpg

(3) Devuelve un error cuando lo convierto al tipo de datos de duración

Anónimo

Hola @ Rajeshree91,
He creado la siguiente columna para el requisito de Hora MIN SEC.
Por favor modifíquelo un poco ya que también tiene días. En caso de que no pueda hacerlo, avíseme que lo haré.
REq_Time_Format = IF (SEARCH («sec», ‘Tabla'[Time], 1,0)> 0, SUSTITUTE (IF (SEARCH («min», ‘Tabla'[Time], 1,0)> 0, SUBSTITUTE (IF (SEARCH («hora», ‘Tabla'[Time], 1,0)> 0, SUSTITUTO (‘Tabla'[Time], «hora», «:»), «00:» & ‘Tabla'[Time]), «minuto», «:»), «00:00:» & ‘Tabla'[Time]), «SEC», «»), IF (SEARCH («min», ‘Table'[Time], 1,0)> 0, SUSTITUTE (IF (SEARCH («hora», ‘Tabla'[Time], 1,0)> 0, SUSTITUTO (‘Tabla'[Time], «hora», «:»), «00:» & ‘Tabla'[Time]), «minuto», «:»), «00:00:» & ‘Tabla'[Time]) Y «00»)
luego vaya a la pestaña de modelado y convierta esta columna a formato de hora y escriba: HH: MM: SS: TT
luego cree una columna más o puede agregar el cálculo en la fórmula anterior.
In_Seconds = «Tabla»[REq_Time_Format]* 86400
luego realice sus cálculos y
REq_Time_Format ya está en su formato requerido para que pueda mostrarlo como está.
Gracias y Saludos,
Pravin Wattamwar
www.linkedin.com/in/pravin-p-wattamwar

Si resuelvo su problema, márquelo como una solución y felicítelo.

Rajeshree91

En respuesta a Anónimo

@AnónimoHola, recibo el siguiente error: las operaciones de comparación de DAX no admiten la comparación de valores de tipo entero con valores de tipo Texto. Considere usar la función VALOR o FORMATO para convertir uno de los valoreserror.jpg

Anónimo

Hola @ Rajeshree91,
He creado la siguiente columna para el requisito de Hora MIN SEC.
Por favor modifíquelo un poco ya que también tiene días. En caso de que no pueda hacerlo, avíseme que lo haré.
REq_Time_Format = IF (SEARCH («sec», ‘Tabla'[Time], 1,0)> 0, SUSTITUTE (IF (SEARCH («min», ‘Tabla'[Time], 1,0)> 0, SUBSTITUTE (IF (SEARCH («hora», ‘Tabla'[Time], 1,0)> 0, SUSTITUTO (‘Tabla'[Time], «hora», «:»), «00:» & ‘Tabla'[Time]), «minuto», «:»), «00:00:» & ‘Tabla'[Time]), «SEC», «»), IF (SEARCH («min», ‘Table'[Time], 1,0)> 0, SUSTITUTE (IF (SEARCH («hora», ‘Tabla'[Time], 1,0)> 0, SUSTITUTO (‘Tabla'[Time], «hora», «:»), «00:» & ‘Tabla'[Time]), «minuto», «:»), «00:00:» & ‘Tabla'[Time]) Y «00»)
luego vaya a la pestaña de modelado y convierta esta columna al formato de hora y escriba: HH: MM: SS: TT
luego cree una columna más o puede agregar el cálculo en la fórmula anterior.
In_Seconds = «Tabla»[REq_Time_Format]* 86400
luego realice sus cálculos y
REq_Time_Format ya está en su formato requerido para que pueda mostrarlo como está.
Gracias y Saludos,
Pravin Wattamwar
www.linkedin.com/in/pravin-p-wattamwar

Si resuelvo su problema, márquelo como una solución y felicítelo.

Anónimo

En respuesta a Anónimo

Hola @ Rajeshree91

Crea uno [Days] Columna =

Días = SI (FIND («día», ‘Tabla'[Time], 1,0)> 0, IZQUIERDA (‘Tabla'[Time], FIND («día», ‘Tabla'[Time], 1,0) -1), «0»)
Cree otra columna para la parte restante =
Remaining_Part = IF (FIND («día», ‘Tabla'[Time], 1,0)> 0, MID (‘Tabla'[Time], FIND («día», ‘Tabla'[Time], 1,0) + 4, LEN (‘Tabla'[Time]) -FIND («día», ‘Tabla'[Time], 1,0) +4), ‘Tabla'[Time])
Crear columna de formato de hora
Formato de hora = IF (SEARCH («seg», ‘Tabla'[Remaining_Part], 1,0)> 0, SUSTITUTE (IF (SEARCH («min», ‘Tabla'[Remaining_Part], 1,0)> 0, SUBSTITUTE (IF (SEARCH («hora», ‘Tabla'[Remaining_Part], 1,0)> 0, SUSTITUTO (‘Tabla'[Remaining_Part], «hora», «:»), «00:» & ‘Tabla'[Remaining_Part]), «minuto», «:»), «00:00:» & ‘Tabla'[Remaining_Part]), «seg», «»), IF (SEARCH («min», ‘Tabla'[Remaining_Part], 1,0)> 0, SUBSTITUTE (IF (SEARCH («hora», ‘Tabla'[Remaining_Part], 1,0)> 0, SUSTITUTO (‘Tabla'[Remaining_Part], «hora», «:»), «00:» & ‘Tabla'[Remaining_Part]), «minuto», «:»), «00:00:» & ‘Tabla'[Remaining_Part]) Y «00»)
Después de eso, vaya a la pestaña de modelado y cambie el tipo de fecha = Hora y formato = HH: MM: SS: TT
y segunda columna / medida final =

In_Seconds = «Tabla»[Time Format]* 86400 + ‘Tabla'[Days]* 86400
Capture.PNG
Gracias y Saludos,
Pravin Wattamwar
www.linkedin.com/in/pravin-p-wattamwar

Si resuelvo su problema, márquelo como una solución y felicítelo.

Rajeshree91

En respuesta a Anónimo

@AnónimoHola, recibo el siguiente error: las operaciones de comparación de DAX no admiten la comparación de valores de tipo entero con valores de tipo Texto. Considere usar la función VALOR o FORMATO para convertir uno de los valoreserror.jpg

Anónimo

En respuesta a Rajeshree91

Hola @ Rajeshree91

Por favor revise su DAX.

En la parte IF part, cuando la condición es verdadera, está devolviendo un valor entero (la función Find () devuelve la posición entera).

En otra parte, está devolviendo «0», que es una cadena. Entonces, en lugar de usar «0», use 0.

Gracias y Saludos,
Pravin Wattamwar
www.linkedin.com/in/pravin-p-wattamwar

Si resuelvo su problema, márquelo como una solución y felicítelo.

Anónimo

En respuesta a Anónimo

Y su DAx no es idéntico a mi dax.

Vuelva a comprobarlo.

Su parte IF debe comparar su condición con 0, no con IZQUIERDA (……).

NOTA: FIND () y sustituto distinguen entre mayúsculas y minúsculas.

Deja un comentario

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