Ceros iniciales en el campo de tiempo

Un usuario Pregunto ✅

kattlees

Estoy cargando un documento de Excel con campos de tiempo que se ingresan en Excel como números (no tienen dos puntos).

Ejemplo:

1245
0700
0637
0027

Tengo esta fórmula para convertir el campo en power bi
Nueva hora = ifERROR (TIME (LEFT (‘Hora'[Field], LEN (Hora'[Field]) -2), DERECHA (Hora'[Field]2), 0), EN BLANCO ())

Esto funciona sorprendentemente bien, excepto en cualquier momento que comience con 00 como en el 0027 anterior.

¿Hay una mejor manera de hacer esto? Mi objetivo es no tener que poner las fórmulas en Excel y dejar que Power Bi haga la conversión.

Hola @kattlees

¿Es esto lo que buscas?

New Time = FORMAT('Time'[Field],"00:00")

image.png

ChrisMendoza

Si fuera solo Excel y las celdas formateadas como TEXTO, haría lo siguiente:

Hora Hora Minuto CONCATENAR VALOR DEL TIEMPO
1245 12 45 12:45 0.53125
0700 07 00 07:00 0,291666667
0637 06 37 06:37 0,275694444
0027 00 27 00:27 0.01875
  1. [Time] valores como TEXTO
  2. [Hour] = IZQUIERDA (A2,2)
  3. [Minute] = DERECHA (A2,2)
  4. [CONCATENATE]= B2 & «:» & C2
  5. [TIMEVALUE] = TIMEVALUE (D2)

Obtener datos en realidad convertidos a números enteros automáticamente, por lo que tuve que eliminar el paso para recuperar los ceros iniciales editando la consulta. Apliqué la misma lógica en PowerBI y obtuve el [time in decimal] que luego formateé ver a continuación.

8.PNG

Una fórmula:

One Formula = 
VAR hours = LEFT(Table2[Time],2)
VAR minutes = RIGHT(Table2[Time],2)
VAR concat = hours&":"&minutes
RETURN
    TIMEVALUE(concat)

Hola @kattlees

¿Es esto lo que buscas?

New Time = FORMAT('Time'[Field],"00:00")

image.png

ChrisMendoza

En respuesta a Phil_Seamark

@Phil_Seamark ¿Esto no es TEXTO ahora? ¿Todavía puedes hacer matemáticas de tiempo en esta columna? Por supuesto, estoy asumiendo que hacer matemáticas en el tiempo es lo que se desea.

En respuesta a ChrisMendoza

Hola @ChrisMendoza

Simplemente ajuste el campo en TIMEVALUE en ese caso. Puede formatear el resultado final utilizando las funciones de formato.

New Time = 
    TIMEVALUE(
        FORMAT('Time'[Field],"00:00")
        )

image.png

ChrisMendoza

En respuesta a Phil_Seamark

Oh, mi @Phil_Seamark, acabas de hacer que mi cabeza explote con eso. ¿Dónde estaba esa información la primera vez que tuve un problema de tiempo de texto? ¡Impresionante!

Greg_Deckler

Normalmente, para conservar los ceros a la izquierda en los campos numéricos, los convierte a texto en la consulta. También puede usar el comando DAX FORMAT, pero creo que eso también los convertirá en texto.

Deja un comentario

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