¿Cómo Excel interpreta y opera con horas?
Lo primero que podemos decir al respecto, es que Excel no
tiene una serie de relojitos con los cuales suma y resta horas, sino que detrás
de esto hay, como sospechas, matemática. De hecho, Excel realiza una traducción
de horas hacia y desde números, siendo “hora”, tan solo una forma de expresar
dicho número.
Para una fecha dada, Excel lo interpretará como un número
con una parte entera y una parte decimal: la parte entera corresponderá al día,
y la parte decimal, a la fracción del día, o dicho de otra manera, las horas,
minutos y segundos transcurridos de dicho día.
El “inicio de los tiempos” queda determinado en Excel por un
valor cero, que ocurre al inicio del año 1900. Esto significa que Excel no
puede trabajar con fechas anteriores a dicho año, con lo cual debemos tener
recaudos si nos hallamos frente a un caso de estas características. Esto quiere
decir que el número cero en Excel se interpreta como una fecha que en realidad
no existe, pero que se expresa como el cero de enero de 1900 (0/1/1900). A
continuación, el número 1 representa el 1 de enero de ese año, el 30, el 30 de
enero de 1900, y así sucesivamente, tal que por ejemplo el número 44608 nos remonta hasta nuestros días y representa la
fecha 16/02/2022.
Sin embargo, el “Problema del año 1900” tiene otra implicancia
derivada de la ya mencionada, y es que toda operación matemática entre fechas y horas que arroje un
número negativo como resultado, no podrá expresarse en forma de fecha por parte
de Excel. Si la expectativa hubiera sido que el número “-1” representara “el
día anterior” a 0/1/1900, o algo así como 31/12/1899, temo decepcionarte con
que esto no ocurrirá.
Vemos un ejemplo: si por ejemplo nos interesara obtener el tiempo
transcurrido en horas entre el 10/2/22 a las 15:00 hs y el 11/2/22 a las 9:00 hs, podríamos pretender,
lógicamente, restarlos. El resultado que nos interesará deberá estar expresado en horas.
Sin embargo, si dicha resta se realiza en el
sentido [anterior] – [posterior] (es decir, que luego de
convertidos internamente a números arrojarían un resultado negativo), el
resultado menor a cero no podrá expresarse en forma de fecha, y en su lugar mostrará
indefinida cantidad de caracteres “#####”.
Ahora que conocemos las causas del problema, ¿qué podemos hacer para evitarlo? Afortunadamente, es sencillo de prever: basta con procurar siempre restar los valores más pequeños a los valores más altos (buscando que el resultado de la diferencia sea un valor positivo), o en caso que resulte inconveniente, expresar esta diferencia en su valor absoluto (sin signo), que en la práctica es equivalente a convertir un valor de cualquier signo a un número positivo. Para convertir un número a su valor absoluto, empleamos ABS: