Milisegundos en fechas y horas de Excel

Al trabajar con tiempos en Excel no es muy frecuente utilizar la cantidad exacta de milisegundos que devuelven las funciones que insertan la fecha y la hora del sistema en las celdas de una hoja de algún libro de Excel.

Sin embargo, en algunas ocasiones muy particulares si que podemos necesitar de estas pequeñas cifras para tratar algún problema que estemos resolviendo con esta hoja de cálculo.

Pues bien, en este artículo te voy a describir como obtener de una hora (insertada desde función) la cantidad de milisegundos exacta con que fue cargada en una celda. Además, te mostraré como recuperar e insertar en otras celdas esos milisegundos como números enteros mediante dos fórmulas muy sencillas.


Antes de comenzar a explicarte cada una de las fórmulas quiero que comprendas que cuando se trabajan con horas y/o fechas dentro de esta aplicación, Excel internamente siempre representa una fecha como un número entero secuencial (por ejemplo, el 04 de jul de 2017 equivale al número 42920), y una hora del día como un valor decimal mayor que cero y menor que uno (por ejemplo, 0.45 denota las 10:48:00 a.m.).

El camino más sencillo para obtener de una hora insertada desde función el número exacto de milisegundos con que se introdujo desde el sistema hacia una celda de Excel, es cambiando el Formato de numero personalizado de la celda de la siguiente manera.

Formato de número personalizado para leer los milisegundos de una hora

hh:mm:ss.000

Nota: utilice el carácter separador decimal de su sistema para especificar los ceros.

Recuperar los milisegundos de una hora como valores enteros no es una tarea complicada. Lo primero que debes entender es que si una hora la representa Excel como un valor decimal (una fracción de la unidad), probablemente no podrás recuperarla haciendo uso de cálculos que extraigan residuos de dicha hora. Debe usarse alguna técnica intermedia que trate a la hora como una cadena de texto para extraer algunos de sus caracteres y posteriormente volver a convertirla a un valor numérico.

Fórmula para recuperar milisegundos de una hora como valores enteros

=VALOR(DERECHA(TEXTO(A1,"dd/mm/yyyy hh:mm:ss.000"),3))

Nota: suponga que en la celda A1 usted ha introducido la fecha y la hora de su sistema mediante la función AHORA.

Insertar una cantidad de milisegundos (como valores enteros) dentro de una hora que se ha escrito manualmente desde el teclado tiene el mismo inconveniente que se presenta a la hora de recuperar estos milisegundos. El problema radica en que no se pueden agregar como una simple suma aritmética debido a que una hora es una fracción decimal y los milisegundos son valores enteros. La solución está en convertir primero los milisegundos en la fracción decimal de tiempo que representan y posteriormente si sumarlos a la hora que se requiera.

Fórmula para insertar milisegundos como valores enteros a una hora

=A1+(A2/8.64E7)

Nota: suponga que la celda A1 contiene una hora escrita desde el teclado (por ejemplo, 15:25:30) y la celda A2 contiene un número entero de 450 para representar esa cantidad de milisegundos.

Si formatea la celda que utilice para realizar el cálculo con el formato de número personalizado (hh:mm:ss.000) obtendrá la adición de los 450 milisegundos a la hora escrita en la celda A1.

La expresión (8.64E7) relaciona en notación científica los 86 millones 400 mil milisegundos que tiene un día cualquiera.

Observaeste video para comprender a fondo las fórmulas.

3 comentarios:

  1. Buen post!.. Si quiero mostrar el valor de hora con 6 decimales? (Milmilesimos de segundo) como por ejemplo 02:15:40.647988

    ResponderBorrar
  2. Pudiste realizar este función.?? Me la compartes si la conseguiste

    ResponderBorrar
  3. Exactamente, necesito de más casas decimales en los milmilesimos de segundo como por exemplo 11:30:40,00033. Lo Excel solo permite tres números en los milmillonésimos de segundos.

    ResponderBorrar