Calcular el último día de un mes

Ocasionalmente nos vemos en la necesidad de calcular la fecha del último día de determinado mes, de determinado año, o su pariente cercano, el número de días que tiene un mes.

En una previa nota vimos como calcular la fecha de término de un periodo particular, para un número entero de meses. La fórmula utilizada era:

=FECHA(AÑO(A2), MES(A2)+B2, DIA(A2)-1)

Donde A2 es la fecha inicial y B2 la duración del periodo en meses.

Si nuestro periodo está expresado en días, entonces usamos esta variante:

=FECHA(AÑO(A2), MES(A2), DIA(A2)+B2)

Esta fórmula funciona aún si DIA(A2)+B2 es mayor al número de días del mes MES(A2), ya que Excel "ajusta" el mes (y si es necesario, también el año) de la fecha resultante automáticamente. En efecto, si ingresamos la siguiente "fecha" en Excel:

33/01/2008

Excel nos mostrará:

02/02/2008

Ajustando el mes (y el día) adecuadamente para mostrar una fecha válida.

Supongamos ahora que en A2 tenemos una fecha de febrero de 2008, por ejemplo:

14/02/2008

Y queremos saber cuántos días tiene el mismo mes. Para calcularlo, primeramente calculamos la fecha del primer día del mes siguiente, como sigue:

=FECHA(AÑO(A2), MES(A2)+1, 1)

Lo cual devuelve 01/03/2008. Llegados a este punto, les revelaré algo que me llevó 10 años de meditación profunda descubrir: El último día de un mes es siempre el día anterior al primer día del mes siguiente. Conociendo esto, y sabiendo que en Excel, un día es igual a una unidad, obtenemos la fórmula para calcular el último día de un mes, en este caso febrero 2008:

=FECHA(AÑO(A2), MES(A2)+1, 1) - 1

Nuevamente, como un día es igual a una unidad, podemos restar 1 directamente al argumento día:

=FECHA(AÑO(A2), MES(A2)+1, 1-1)

Simplificando:

=FECHA(AÑO(A2), MES(A2)+1, 0)

Lo cual se convierte en:

=FECHA(2008, 3, 0)

Como el cero de marzo no es una fecha válida, Excel la ajustará adecuadamente y nos mostrará el día anterior al 1 de marzo:

29/02/2008

Para finalizar, si solo nos interesa saber el número de días de un mes (no una fecha) lo extraemos de la fórmula anterior con la función DIA:

=DIA(FECHA(AÑO(A2), MES(A2)+1, 0))

2 comentarios:

Anónimo dijo...

Cordial saludo y bendiciones en el Señor JESUCRISTO, muchas bendiciones. Bueno tengo una inquietud:
Cuando aplico
= Fecha(año(##);mes(##)+1;0)
En una hoja si funciona del libro, pero encambio en otra arroja #Num, quizás se deba a algún complemento.
Quizás me puedas ayudar.

Anónimo dijo...

EXCELENTE....

MUCHAS GRACIAS!!!

Estuve buscando un comando así mucho tiempo

De nuevo, MUCHAS GRACIAS!!!!

Publicar un comentario