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.
Phil_Seamark
Hola @kattlees
¿Es esto lo que buscas?
New Time = FORMAT('Time'[Field],"00:00")
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 |
- [Time] valores como TEXTO
- [Hour] = IZQUIERDA (A2,2)
- [Minute] = DERECHA (A2,2)
- [CONCATENATE]= B2 & «:» & C2
- [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.
Una fórmula:
One Formula = VAR hours = LEFT(Table2[Time],2) VAR minutes = RIGHT(Table2[Time],2) VAR concat = hours&":"&minutes RETURN TIMEVALUE(concat)
Phil_Seamark
Hola @kattlees
¿Es esto lo que buscas?
New Time = FORMAT('Time'[Field],"00:00")
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.
Phil_Seamark
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") )
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.