Conversión de valores numéricos a horas (Microsoft Excel)
Sam tiene muchas hojas de trabajo que contienen tiempos. El problema es que las horas están en el formato «1300» en lugar del formato «13:00». Por lo tanto, Excel los ve como valores numéricos regulares en lugar de reconocerlos como tiempos. Sam quiere que se conviertan a valores de tiempo reales.
Hay varias formas de abordar esta tarea. Una forma es usar la función TIME para convertir el valor en una hora, como se muestra aquí:
=TIME(LEFT(A1,2),RIGHT(A1,2),)
Esta fórmula asume que la hora en la celda A1 siempre contendrá cuatro dígitos. Si no es así (por ejemplo, podría ser 427 en lugar de 0427), entonces la fórmula debe modificarse ligeramente:
=TIME(LEFT(A1,LEN(A1)-2),RIGHT(A1,2),)
Básicamente, la fórmula extrae el dígito (o dígitos) más a la izquierda y los usa para el argumento de las horas de la función TIME, y luego usa los dos dígitos del extremo derecho para el argumento de los minutos. TIME devuelve un valor de tiempo real, formateado como tal en la celda.
Se puede adoptar un enfoque de fórmula similar utilizando la función TIMEVALUE:
=TIMEVALUE(REPLACE(A1,LEN(A1)-1,0,":"))
Esta fórmula usa REPLACE para insertar dos puntos en el lugar adecuado, y luego TIMEVALUE convierte el resultado en un valor de tiempo. Deberá formatear la celda resultante para que muestre la hora que desee.
Otra variación del enfoque de fórmulas es usar la función TEXTO, de esta manera:
=--TEXT(A1,"00\:00")
Esto devuelve un valor de hora real, que luego deberá formatear correctamente para que se muestre como una hora.
Otro enfoque es simplemente hacer los cálculos en el tiempo original para convertirlo en un valor de tiempo utilizado por Excel. Esto es fácil una vez que se da cuenta de que los valores de tiempo no son más que una fracción de un día. Por tanto, un valor de tiempo es un número entre 0 y 1, que se obtiene dividiendo las horas entre 24 (las horas de un día) y los minutos entre 1440 (los minutos de un día). Aquí hay una fórmula que hace eso:
=INT(A1/100)/24+MOD(A1,100)/1440
Esto determina la porción de horas del valor original, que luego se divide por 24. La porción de minutos (la parte que queda del valor original) se divide por 1440 y se agrega a la primera parte. Luego puede formatear el resultado como una hora y funciona perfectamente.
Todas las fórmulas descritas hasta ahora utilizan una nueva columna para realizar las conversiones. Esto es útil, pero es posible que desee convertir el valor en el lugar, sin la necesidad de una fórmula. Aquí es donde una macro puede resultar útil. La siguiente macro convertirá las celdas que haya seleccionado en valores de tiempo y formateará las celdas de manera apropiada:
Sub NumberToTime() Dim rCell As Range Dim iHours As Integer Dim iMins As Integer For Each rCell In Selection If IsNumeric(rCell.Value) And Len(rCell.Value) > 0 Then iHours = rCell.Value \ 100 iMins = rCell.Value Mod 100 rCell.Value = (iHours + iMins / 60) / 24 rCell.NumberFormat = "h:mm AM/PM" End If Next End Sub
La macro usa una división entera para determinar el número de horas (iHours) y mete el resto en iMins. Luego se ajusta a un valor de tiempo y se vuelve a colocar en la celda, que luego se formatea como una hora. Puede cambiar el formato de celda, si lo desea, a cualquiera de los otros formatos de hora admitidos por Excel.
_Nota: _
Si desea saber cómo usar las macros descritas en esta página (o en cualquier otra página de los sitios ExcelTips), he preparado una página especial que incluye información útil.
link: / excelribbon-ExcelTipsMacros [Haga clic aquí para abrir esa página especial en una nueva pestaña del navegador]
.
ExcelTips es su fuente de formación rentable en Microsoft Excel.
Este consejo (10101) se aplica a Microsoft Excel 2007, 2010, 2013 y 2016.
Puede encontrar una versión de este consejo para la interfaz de menú anterior de Excel aquí:
enlace: / excel-Converting_Numeric_Values_to_Times [Conversión de valores numéricos en tiempos]
.