
Общая формула
=MONTH(DATE(YEAR(date),2,29))=2
Резюме
Чтобы проверить, является ли год определенной даты високосным, можно использовать формулу, в которой используются функции МЕСЯЦ, ГОД и ДАТА. В показанном примере формула в ячейке C5:
=MONTH(DATE(YEAR(B5),2,29))=2
Объяснение
Ядром этой формулы является функция ДАТА, которая автоматически корректирует значения месяца и года, выходящие за пределы допустимого диапазона. В формуле год передается в число без изменений, вместе с 2 для месяца (февраль) и 29 для дня. В високосные годы в феврале 29 дней, поэтому функция ДАТА просто вернет дату 29 февраля года.
Однако в невисокосные годы DATE вернет дату 1 марта года, потому что в феврале нет 29-го дня, а DATE просто переносит дату вперед на следующий месяц.
Наконец, функция MONTH просто извлекает месяц из результата, предоставленного DATE, который сравнивается с 2 с использованием знака равенства. Если месяц равен 2, формула возвращает ИСТИНА. В противном случае месяц должен быть равен 3, и формула возвращает ЛОЖЬ.
Только тестовый год
Чтобы проверить только год, а не полную дату, вместо даты измените формулу, как показано ниже:
=MONTH(DATE(year,2,29))=2
В этой версии мы не извлекаем значение года из даты, мы передаем значение года (например, 2020) непосредственно в функцию DATE.
Более буквальное решение
Если приведенная выше формула кажется слишком умной и вам нужно более буквальное решение, приведенная ниже формула проверит, содержит ли год 366 дней:
=DATE(YEAR(date)+1,1,1)-DATE(YEAR(date),1,1)=366
Эта формула генерирует две даты на основе предоставленной даты: (1) первая дата следующего года и (2) первая дата текущего года. Затем первое число текущего года вычитается из первого числа следующего года. В невисокосные годы результат равен 365, и формула возвращает ЛОЖЬ. В високосные годы результат равен 366, и формула возвращает ИСТИНА.