Medir fracciones de segundos en Excel (décimas, centésimas, milésimas)

sábado, octubre 27, 2007

Uno de mis lectores me consulta cómo hacer cálculos de diferencia de tiempos en Excel tomando en consideración fracciones de segundos. Es decir, expresar los tiempos con décimas, centésimas y/o milésimas de segundos.

El formato de Excel para expresar fracciones de segundos es

hh:mm:ss,000

Este es un formato personalizado y debemos definirlo usando el diálogo Formato de Celdas




Dependiendo de las definiciones del sistema, la coma en "ss,000" debe ser reemplazada por un punto.

Digamos que tomamos los tiempos de una competición de natación. Para calcular la diferencia de tiempos empezamos por dar el formato adecuado a los rangos que contendrán los tiempos (en nuestro caso mm:ss,000, es decir minutos, segundos y fracción de segundo); luego ponemos los tiempos y calculamos la diferencia



Un detalle interesante de notar es el siguiente:



A pesar de haber escrito en la celda 01:24,140, la barra de las fórmulas muestra 12:01:24 a.m. Esto no tendría gran importancia si no fuera por el siguiente hecho:

- seleccionamos la celda B2 de nuestra tabla, que contiene el tiempo del primer nadador
- ahora presionamos F2 para editar el contenido de la celda
- inmediatamente presionamos Enter, cuidándonos de no cambiar nada en la celda



El resultado es que Excel, a pesar del formato que hemos dado, cambia el contenido de la celda a la hora del día.

La única explicación que le encuentro a este fenómeno es que si bien Excel usa las fracciones de segundos para los cálculos, no los expone en la barra de fórmulas. Por esto al editar el contenido de la celda, las fracciones de segundo se pierden.

La conclusión es que cuando usamos Excel para cálculos que incluyen fracciones de segundos, debemos tener mucho cuidado cuando editamos las celdas.
Otra conclusión importante es que la máxima precisión posible con Excel es de milésimas de segundo. Si agregamos un cero más al formato mostrado más arriba, por ejemplo mm:ss,00000, Excel seguirá exhibiendo los resultados hasta la precisión de milésimas de segundo como con mm:ss,000.

Una solución para estos problemas es usar una función definida por el usuario (UDF) como la propuesta por Doug Jenkins en un comentario a una nota en Daily Dose of Excel:

Function ETime(Hours As Double, Mins As Double, Secs As Double) As Double
ETime = ((Secs / 60 + Mins) / 60 + Hours) / 24
End Function

Esta función permite usar fracciones de segundos más precisas que las milésimas de segundo.

Technorati Tags:

9 comments:

Anónimo,  07 enero, 2011 20:59  

Si tengo frames por segundo: esta buena la idea, para usar frames por segundos. Puedo usar las funciones de hora, munito y segundo de excel para pasar todo a frames. Pero si tengo por ejemplo 9:07:19,24 no sé como tomar esos 24 frames para sumarlo a lo demás, osea lo que quiero lograr es
9*60*60*30+7*60*30+19*30+24=985194 frames

Jorge L. Dunkelman 09 enero, 2011 19:46  

Estimado,
no termno de entender la conexión entre horas, minutos y segundos (y tal vez decenas, centenas o milésimas de segundo) y los frames.
Si "frames" son centenas de segundo, en 9:07:19 horas hay 33429 segundos. Este resultado puede obtenerse multiplicando 9:07:19 X 86400.

86400 es el resultado de multiplicar 24 horas X 60 minutos X 60 segundos. Multiplicando por 8640000 obtendríamos el total en centenas (frames?).

Anónimo,  10 enero, 2011 15:56  

Hola, pido disculpas, y paso a explicar.
El frame es la unidad de medida que se utiliza para cuadros por segundo (en video). Es una unidad mas chica de medida que el segundo. Dependiendo del tipo de video, puede tener 30 ó 35 frames por segundo.
Suponiendo que FPS (frames por segundo)= 35,
Lo que yo quiero lograr en un excel es lo siguiente:
01:20:30,25
+ 02:03:22,14
-----------
03:23:53,04

Osea, el rando de horas va hasta 60, igual que el de minutos y segundos. Pero el rango de frames va hasta 35.

Se entiende?

Gracias y Saludos.
Luis

Jorge L. Dunkelman 12 enero, 2011 07:34  

Luis,
no podemos mezclar unidades (tiempo y frames). El formato de datos permite presentar los datos de una manera determinada, pero no puede hacer conversiones de una unidad a otra.
Por ahora la única manera que se me ocurre de lograr lo que quieres hacer es una una UDF (función definida por el usuario, macro).

Anónimo,  22 septiembre, 2011 04:54  

Gracias maestro. me sacaste de un embrollo. Muchísimas gracias.

Anónimo,  25 febrero, 2012 10:41  

Se podrian sumar las horas minutos y segundos y luego los frames, entendiendo mediante una formula que si da 35 o mas de sume 1 segundo a los segundos y quede los 2 numeros de esa suma realizada.

Anónimo,  21 marzo, 2012 18:37  

Cómo hago para poder tener tiempo negativo, por que no me deja. supongamos 01:30,846 - 01:29,682. No da el resultado, por que no muestran números negativos

Jorge L. Dunkelman 21 marzo, 2012 19:36  

Fijate en la explicación que pongo en esta nota.

Anónimo,  27 mayo, 2013 19:05  

Me interesa mucho lo de los frames, puesto que necesito calcular el tiempo que se hace de varios XDCam y debo sumarlo(en este caso 1 segundo = 25 frames). Alguien puede ayudarme con una UDF? gracias

Publicar un comentario

Google+ Followers

Seguidores

Google+ Badge

Términos Legales

  © Blogger template On The Road by Ourblogtemplates.com 2009

Back to TOP