
Formule générique
=MONTH(DATE(YEAR(date),2,29))=2
Sommaire
Pour tester si l'année d'une certaine date est une année bissextile, vous pouvez utiliser une formule qui utilise les fonctions MONTH, YEAR et DATE. Dans l'exemple illustré, la formule de la cellule C5 est:
=MONTH(DATE(YEAR(B5),2,29))=2
Explication
Le cœur de cette formule est la fonction DATE, qui s'ajustera automatiquement aux valeurs du mois et de l'année qui sont hors limites. Dans la formule, l'année est passée en date sans changement, avec 2 pour le mois (février) et 29 pour le jour. Dans les années bissextiles, février a 29 jours, donc la fonction DATE renverra simplement la date du 29 février de l'année.
Cependant, dans les années non bissextiles, DATE renverra la date du 1er mars de l'année, car il n'y a pas de 29e jour en février, et DATE reporte simplement la date au mois suivant.
Enfin, la fonction MONTH extrait simplement le mois du résultat fourni par DATE, qui est comparé à 2 en utilisant le signe égal. Si le mois est 2, la formule renvoie VRAI. Sinon, le mois doit être 3 et la formule renvoie FALSE.
Année de test uniquement
Pour vérifier une année uniquement, au lieu d'une date complète, au lieu d'une date, modifiez la formule comme ci-dessous:
=MONTH(DATE(year,2,29))=2
Dans cette version, on n'extrait pas une valeur d'année d'une date, on passe une valeur d'année (ie 2020) directement à la fonction DATE.
Une solution plus littérale
Si la formule ci-dessus vous semble trop intelligente et que vous voulez une solution plus littérale, la formule ci-dessous testera si une année contient 366 jours à la place:
=DATE(YEAR(date)+1,1,1)-DATE(YEAR(date),1,1)=366
Cette formule génère deux dates basées sur la date fournie: (1) la première de l'année suivante et (2) la première de l'année en cours. Ensuite, le premier de l'année en cours est soustrait du premier de l'année suivante. Dans les années non bissextiles, le résultat est 365 et la formule renvoie FALSE. Dans les années bissextiles, le résultat est 366 et la formule renvoie TRUE.