Determinar si un año es bisiesto (Microsoft Excel)
Bob se pregunta si existe una manera fácil de determinar si el año de una fecha en particular es un año bisiesto, con el propósito de calcular el interés y el número de días compuestos.
Todos sabemos que si un año es divisible entre 4, entonces es un año bisiesto, ¿verdad? Bueno, en realidad eso está mal. Entonces, no puede simplemente dividir un número de año por 4, como se muestra a continuación, para determinar si es un año bisiesto:
=IF(MOD(YEAR(A1), 4) = 0, "Leap", "Regular")
La fórmula funcionará para todas las fechas dentro de este siglo (años 2000 a 2099), pero no funcionará de manera confiable fuera de ese rango. La razón es que «divisible por 4» no es la única prueba para un año bisiesto. Si el año es un año de siglo (divisible por 100), entonces es un año bisiesto sólo si es divisible por 400. Por lo tanto, el año 2000 es bisiesto, pero el año 2100 no lo es.
Si desea una forma infalible de determinar si una fecha ocurre dentro de un año bisiesto, entonces su fórmula debe ser más compleja:
=IF(OR(AND(MOD(YEAR(A1),4)=0,MOD(YEAR(A1),100)>0), MOD(YEAR(A1),400)=0),"Leap","Regular")
Tenga en cuenta que esta es una fórmula única; se muestra aquí en dos líneas para que encaje completamente en la pantalla. La fórmula prueba las tres condiciones necesarias para determinar si una fecha cae dentro de un año bisiesto.
Por supuesto, un enfoque diferente es simplemente averiguar si un año determinado tiene un 29 de febrero dentro. Hay varias fórmulas que se pueden utilizar para realizar esta tarea:
=IF(DAY(EOMONTH("1Jan"&YEAR(A1),1))=29, "Leap", "Regular") =IF(MONTH(DATE(YEAR(A1),2,29))=2, "Leap", "Regular") =IF(DAY(DATE(YEAR(A1),2,29))=29, "Leap", "Regular") =IF(DAY(DATE(YEAR(A1),3,0))=29, "Leap", "Regular")
Cualquiera de los métodos descritos hasta ahora funciona bien para cualquier fecha compatible con Excel, con una excepción. Aquellos que usan la función FECHA (los últimos tres mostrados arriba) no funcionarán si la fecha en la celda A1 es el año 1900. Aquellos que siempre devolverán que 1900 es un año bisiesto, aunque no lo sea. (Curiosamente, la función EOMONTH no presenta el mismo problema que la función DATE a este respecto.)
Si necesita trabajar con fechas anteriores a las admitidas por Excel (antes del 1 de enero de 1900), deberá trabajar con años directamente en lugar de extraer el año de una fecha de Excel. La variación en la fórmula de tres pruebas funcionará bien, si la celda A1 contiene solo un año:
=IF(OR(AND(MOD(A1,4)=0,MOD(A1,100)>0),MOD(A1,400)=0),"Leap","Regular")
También puede crear una función definida por el usuario que pruebe la fecha.
Este enfoque funcionará bien independientemente de si la celda contiene un valor de fecha o un valor de texto para una fecha. (Si ingresa un valor de fecha no admitido en una celda, como 1/1/1896, Excel trata la entrada como un valor de texto en lugar de tratar de analizarla como una fecha). El siguiente ejemplo funciona correctamente con todas las fechas admitidas por VBA, que está en el rango del año 100 al año 9999:
Function IsLeap1(c As Range) As Boolean YearNo = Year(c.Value) If YearNo Mod 100 = 0 Then IsLeap1 = ((YearNo \ 100) Mod 4 = 0) Else IsLeap1 = (YearNo Mod 4 = 0) End If End Function
Para usar la función en su hoja de trabajo, debe ingresar una fórmula como esta:
=IF(IsLeap1(A1),"Leap", "Regular")
La siguiente macro de una sola línea funciona utilizando el truco de averiguar si hay un 29 de febrero en el año en cuestión:
Function IsLeap2(c As Range) IsLeap2 = IsDate("2/29/" & Year(c.Value)) End Function
Se hace referencia a la macro de la misma manera en su hoja de trabajo que a la macro anterior:
=IF(IsLeap2(A1),"Leap", "Regular")
Si necesita formas más creativas de determinar si una fecha es un año bisiesto, consulte este artículo:
http://chandoo.org/wp/2012/02/29/check-leap-year-using-excel/
_Nota: _
Si desea saber cómo usar las macros descritas en esta página (o en cualquier otra página de los sitios ExcelTips), he preparado una página especial que incluye información útil.
link: / excelribbon-ExcelTipsMacros [Haga clic aquí para abrir esa página especial en una nueva pestaña del navegador]
.
ExcelTips es su fuente de formación rentable en Microsoft Excel.
Este consejo (9978) se aplica a Microsoft Excel 2007, 2010, 2013, 2016, 2019 y Excel en Office 365.