martes, 8 de diciembre de 2020

FRAC.AÑO. Diferencias entre fechas

Aprenderemos en esta ocasión una función de Excel poco extendida para el cálculo de diferencias entre fechas: FRAC.AÑO(fecha_inicial;fecha_final;[base])
FRAC.AÑO. Diferencias entre fechas

Sin duda su uso poco extendido viene motivado por su curiosidad en el proceso de cálculo para las diferencias entre fechas, donde la precisión no es todo lo que podríamos desear...

Como dato añadido emplearemos para comparar resultados la función SIFECHA (lee aquí más), donde desglosaremos el tiempo entre fechas por años+meses+días con sus diferentes argumentos:
"y" : devuelve la cantidad entera de años en el intervalo de fechas.
"m" : devuelve la cantidad entera de meses en el intervalo de fechas.
"d" : devuelve la cantidad entera de días entre ambas fechas.
"ym" : obtendríamos la cantidad de meses por encima de la cantidad entera de años.
"md" : obtendríamos la cantidad de días por encima de la cantidad entera de meses.

Veamos nuestra función del día:
FRAC.AÑO(fecha_inicial;fecha_final;[base])
siendo clave el tercer argumento opcional '[base]', donde los parámetros permitidos son:
0 u omitido US (NASD) 30/360
1. Real/real
2. Real/360
3. Real/365
4. Europea 30/360
Nos centraremos especialmente en los parámetros con valor 0 -US(NASD) 30/360 y 4 -Europea 30/360, las demás opciones devuelven resultados incompresibles (de los que no he sido capaz de encontrar demasiada información que la explique adecuadamente).
Y es que las opciones 0 (por defecto) o 4 están operando sobre el año comercial de 360 días (12 meses de 30 días)… PERO ambas gestionan el último día del mes de diferente manera!!!

Con 0 - US (NASD) 30/360
Si la fecha inicial es el último día del mes, se convierte al día 30 de ese mes.
Si la fecha final fuera el último día del mes, y la fecha inicial anterior al 30, Excel convierte la fecha final como el 1er día del siguiente mes… de cualquier otra forma la fecha final la trata como el 30 del mismo mes…
Con 4 - Europea 30/360
Tanto si la fecha inicial como la final fueran el 31 de un mes, Excel lo convierte al 30 de dicho mes.

Como se infiere de estos parámetros, para pasar de un año natural de 365/366 días a uno comercial de 360, Excel realiza una serie de reconversiones de fechas complicadas de seguir... haciendo en muchos casos perder días en nuestros cálculos!!.
Te invito a que pruebes el resto de parámetros 1,2 o 3 y verifiques resultados.

Veamos un ejemplo concreto desglosado para su mejor comprensión.
Partimos de una Fecha inicial en B2 y una Fecha final en C2
Sobre estas hemos aplicado las siguientes fórmulas con SIFECHA:
En E2 añadimos =SIFECHA(B2;C2;"y") para obtener la cantidad de años entera en el intervalo de fechas.
En F2 insertamos =SIFECHA(B2;C2;"ym") donde conseguimos la cantidad de meses por encima de la cantidad entera de años.
Y en G2 escribimos =SIFECHA(B2;C2;"md") donde vemos los días por encima de la cantidad entera de meses.

Para las fechas 29/03/2020 y 31/05/2020 tendríamos una diferencia de 2 meses completos (abril+mayo) y dos días (el 30 y 31 de marzo)... podríamos decir que un resultado aceptable...
FRAC.AÑO. Diferencias entre fechas


Vayamos con el cálculo aplicando FRAC.AÑO. Lo desglosaré en distintas celdas para facilitar su entendimiento...
No olvidemos que FRAC.AÑO nos devuelve como resultado la fracción de año que representa el número total de días entre dos fechas dadas (inicial y final).

Insertamos en E6 la fórmula:
=FRAC.AÑO(B2;C2;C6)
Para nuestro ejemplo de fechas devuelve 0,1722222, es decir, cero años y una parte...
Para recuperar el número de años aplicamos la función ENTERO, en la celda E8, sobre ese cálculo, obteniendo cero para el ejemplo.
Por diferencias en F6 incluímos:
=(E6-E8)*12
que sobre la parte decimal anterior, al multiplicarla por 12 resultamos un número de meses (2,06666 en el ejemplo).
En F8 con ENTERO tendremos un número de meses completos.

Finalment en G8 aplicamos con la fórmula:
=(F6-ENTERO(F6))*30
que retornaría el conteo de días excedentes de los meses calculados previos...
FRAC.AÑO. Diferencias entre fechas


Comprobamos la coincidencia del cálculo en este caso entre ambas funciones... ya que las fechas entran dentro de ese juego de configuraciones previamente comentadas.
Si cambiamos nuestra 'base' de la UD (NASD) a la Europea, comprobamos el efecto retorcido de este tercer argumento!!
FRAC.AÑO. Diferencias entre fechas

O este igualmente curioso...
FRAC.AÑO. Diferencias entre fechas

donde con fechas 'límite' 31/03/2020 y 30/06/2020 (ambas entran en esas descripciones comentadas para el argumento [base]), nos devuelven un redondeo de dias y meses... nuevamente perdiendo/ganando un día en el cálculo

Conclusión. Si no buscas una precisión 'milimétrica', FRAC.AÑO es tu función... sin duda más fácil de emplear (y documentada) que SIFECHA (DATEDIF en inglés).

No hay comentarios:

Publicar un comentario

Nota: solo los miembros de este blog pueden publicar comentarios.