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.
Buen post!.. Si quiero mostrar el valor de hora con 6 decimales? (Milmilesimos de segundo) como por ejemplo 02:15:40.647988
ResponderBorrarPudiste realizar este función.?? Me la compartes si la conseguiste
ResponderBorrarExactamente, 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