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))
3 de enero de 2008
Suscribirse a:
Comentarios de la entrada (Atom)
Quiénes leen regularmente este blog
Excel, Excel 2003, Excel 2007, Excel 2010, Excel 2016, Excel Online y el logo XL son marcas registradas de Microsoft Corporation.
Cordial saludo y bendiciones en el Señor JESUCRISTO, muchas bendiciones. Bueno tengo una inquietud:
ResponderBorrarCuando 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.
EXCELENTE....
ResponderBorrarMUCHAS GRACIAS!!!
Estuve buscando un comando así mucho tiempo
De nuevo, MUCHAS GRACIAS!!!!
Eres un máquina, muchas gracias por las fórmulas y sobre todo, muchas gracias por el planteamiento de la fórmula a través de tu meditación. Me ha servido mucho para entenderla y exponerla. Saludos y gracias
ResponderBorrarexcelente,
ResponderBorrarmuchisimas gracias
buscaba saber numero de dias de un mes especifico
muy bien explicado
francisco quiroga
excelente sigue
ResponderBorrarquiro que en una columna me muestre los dias habiles de un mes con una formula los dias programados son 6 o sea de lunes a sabado
ResponderBorrarA mi me parece que esa formula da error cuando el mes es diciembre, propongo:
ResponderBorrar=DIA(FECHA(AÑO(FECHA(AÑO(Q6);MES(Q6);15)+30);MES(FECHA(AÑO(Q6);MES(Q6);15)+30);1)-1)
Lo que hace es tomar el dia 15 del mes en cuestión y sumarle 30 días para que caiga en el próximo mes, y de esa fecha se toma el año, el mes, y se le fija el día 1. Luego se calcula el día anterior.
slds
JAJAJAJAJA CREEME QUE YO SI TENIA UNA DECADA BUSCANDO UNA RESPUESTA A ESTO JAJAJAJA, GRACIAS POR ABRIR MI LOGICA. SALUDOS MOISES CABALLERO
ResponderBorrarBuen tip. Saludos.
ResponderBorrarmuy bueno
ResponderBorrarExcelente comentario
ResponderBorrarSalduos
Ohhhhhhhhhhhhhh Maestro, jaja, todo resumido tan simple.
ResponderBorrar=FIN.MES(celda donde esta la fecha;0)........ y ya está.
ResponderBorrarUn saludo
gracias
ResponderBorrar