Формула високосный год excel

На чтение 2 мин. Просмотров 1.9k.

= МЕСЯЦ (ДАТА (ГОД (дата); 2;29)) = 2

Если вы хотите проверить, является ли год определенной даты високосным, вы можете использовать формулу, в которой используются функции МЕСЯЦ, ГОД и ДАТА.

Год - високосный год

В показанном примере формула в ячейке C5:

= МЕСЯЦ (ДАТА (ГОД (B5); 2;29)) = 2

Основой этой формулы является функция ДАТА, которая автоматически подстраивается к значениям месяца и года, находящимся вне диапазона. В формуле год переносится на дату без изменений, наряду с 2 за месяц (февраль) и 29 за день. В високосные годы февраль имеет 29 дней, поэтому функция ДАТА просто возвращает дату 29 февраля этого года.

Однако в не високосные годы ДАТА вернет дату 1 марта года, потому что нет 29-го дня, а ДАТА просто переносит дату вперед в следующий месяц.

Наконец, МЕСЯЦ просто извлекает месяц из результата, предоставленного ДАТА, который сравнивается с 2, используя знак равенства.

Если месяц равен 2, формула возвращает значение ИСТИНА. Если нет, месяц должен быть равен 3, а формула возвращает ЛОЖЬ.

Когда вы просто хотите проверить год (например, 2015, 2016 и т.д .), измените формулу следующим образом:

= МЕСЯЦ (ДАТА (год; 2;29)) = 2

Если приведенная выше формула кажется «умной» и вам нужно более буквальное решение, вы можете проверить, содержит ли год 366 дней вместо этой формулы:

= ДАТА(ГОД (дата) +1;1;1) -ДЕНЬ (ГОД (дата); 1;1)

Эта формула генерирует две даты, а затем вычитает 1 января данного года с 1 января следующего года.

Основой этой формулы является функция ДАТА, которая автоматически подстраивается к значениям месяца и года, находящимся вне диапазона. В формуле год переносится на дату без изменений, наряду с 2 за месяц (февраль) и 29 за день. В високосные годы февраль имеет 29 дней, поэтому функция ДАТА просто возвращает дату 29 февраля этого года.

Однако в не високосные годы ДАТА вернет дату 1 марта года, потому что нет 29-го дня, а ДАТА просто переносит дату вперед в следующий месяц.

Наконец, МЕСЯЦ просто извлекает месяц из результата, предоставленного ДАТА, который сравнивается с 2, используя знак равенства.

Если месяц равен 2, формула возвращает значение ИСТИНА. Если нет, месяц должен быть равен 3, а формула возвращает ЛОЖЬ.

Когда вы просто хотите проверить год (например, 2015, 2016 и т.д .), измените формулу следующим образом:

Вы знаете, как определить, високосный год или нет? В Excel нет прямого метода проверки, но вы можете создать определяемую пользователем функцию или формулу для решения этой проблемы.

Проверьте, является ли год високосным с формулой

Проверьте, является ли год високосным с помощью функции, определяемой пользователем


стрелка синий правый пузырь Проверьте, является ли год високосным с формулой

Предположим, у вас есть список лет на листе, следующая длинная формула может помочь вам определить, является ли данный год високосным или нет. Пожалуйста, сделайте так:

1. Помимо ячеек года, введите в пустую ячейку следующую формулу:

= ЕСЛИ (ИЛИ (MOD (A2,400) = 0, AND (MOD (A2,4) = 0, MOD (A2,100) <> 0)), «Високосный год», «НЕ високосный год»)(A2 содержит год, когда вы хотите применить эту формулу, вы можете изменить его по своему усмотрению) см. снимок экрана:

doc-check-if-високосный год-1

2. Затем перетащите маркер заполнения в диапазон, который вы хотите содержать в этой формуле, и все годы будут проверены, являются ли они високосными или нет.

doc-check-if-високосный год-1

Внимание: Если соответствующая ячейка пуста, эта формула также покажет високосный год.


стрелка синий правый пузырь Проверьте, является ли год високосным с помощью функции, определяемой пользователем

Вы также можете создать функцию, определяемую пользователем, чтобы проверить, является ли год високосным, вы можете заполнить его следующим образом:

1. Удерживайте ALT + F11 ключи, и он открывает Окно Microsoft Visual Basic для приложений.

2. Нажмите Вставить > Модулии вставьте следующий код в Окно модуля.

Код VBA: проверьте, является ли год високосным

Function IsLeapYear(pYear As Integer) As Boolean
'Update 20140623
If (pYear Mod 4) = 0 And (pYear Mod 100) <> 0 Or ((pYear Mod 400) = 0) Then
   IsLeapYear = True
Else
   IsLeapYear = False
End If
End Function

3. Затем сохраните и закройте этот код, вернитесь на свой рабочий лист и введите эту формулу: = isleapyear (A2), см. Снимок экрана:

doc-check-if-високосный год-1

4. Затем перетащите маркер заполнения в ячейки, которые вы хотите содержать эту формулу, и все годы отмечены флажком, НЕПРАВДА означает не високосный год, а ИСТИНА указывает високосный год. Смотрите скриншот:

doc-check-if-високосный год-1


Связанная статья:

Найдите наименьший общий знаменатель или наибольший общий делитель в Excel


Лучшие инструменты для работы в офисе

Kutools for Excel Решит большинство ваших проблем и повысит вашу производительность на 80%

  • Снова использовать: Быстро вставить сложные формулы, диаграммы и все, что вы использовали раньше; Зашифровать ячейки с паролем; Создать список рассылки и отправлять электронные письма …
  • Бар Супер Формулы (легко редактировать несколько строк текста и формул); Макет для чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон
  • Объединить ячейки / строки / столбцы без потери данных; Разделить содержимое ячеек; Объединить повторяющиеся строки / столбцы… Предотвращение дублирования ячеек; Сравнить диапазоны
  • Выберите Дубликат или Уникальный Ряды; Выбрать пустые строки (все ячейки пустые); Супер находка и нечеткая находка во многих рабочих тетрадях; Случайный выбор …
  • Точная копия Несколько ячеек без изменения ссылки на формулу; Автоматическое создание ссылок на несколько листов; Вставить пули, Флажки и многое другое …
  • Извлечь текст, Добавить текст, Удалить по позиции, Удалить пробел; Создание и печать промежуточных итогов по страницам; Преобразование содержимого ячеек в комментарии
  • Суперфильтр (сохранять и применять схемы фильтров к другим листам); Расширенная сортировка по месяцам / неделям / дням, периодичности и др .; Специальный фильтр жирным, курсивом …
  • Комбинируйте книги и рабочие листы; Объединить таблицы на основе ключевых столбцов; Разделить данные на несколько листов; Пакетное преобразование xls, xlsx и PDF
  • Более 300 мощных функций. Поддерживает Office/Excel 2007-2021 и 365. Поддерживает все языки. Простое развертывание на вашем предприятии или в организации. Полнофункциональная 30-дневная бесплатная пробная версия. 60-дневная гарантия возврата денег.

вкладка kte 201905


Вкладка Office: интерфейс с вкладками в Office и упрощение работы

  • Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
  • Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
  • Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!

офисный дно

Комментарии (4)


Оценок пока нет. Оцените первым!

Over the years I’ve run into several situations where we’ve needed to determine if the year is a leap year; most recently to determine the number of working days to calculate billable time — not the important part.  I remember being taught as a kid the easy way to figure it out in your head but couldn’t find a simple way to do in an Excel formula/cell.

Figure out in your head:  I’m realizing a lot of the tricks I was shown as a kid may not be making it into the school system or are just lost arts of thinking…so I will share and hopefully you will learn something new as well.  

Looking at positions 3 and 4 of the year is all you need to determine the leap year. 

Is position 3 odd or even? (in 2019 this is the «1») 

Odd: then only the last position of «2» or «6» are a leap year.  So 2012 and 2016 were leap years.

Even: then the last positions of «0», «4» or «8» are leap years. So 2002, 2004, 2008 were all leap years.

Feel free to check me on any year….1944 — yep a leap year.  1972 — also a leap year.  Knock yourself out.

Excel formula

So even with this knowledge it is not easy to turn this into usable information in Excel…until this formula.  It is applying the same logic above, into a single field formula.

Spoiler

When you put it all together this is what it looks like.

=IF(MOD(MID(YEAR($A3),3,1),2)=0,IF(MOD(MID(YEAR($A3),4,1),4)=0,»Leap»,»No»),IF(OR(MID(YEAR($A3),4,1)=»2″,MID(YEAR($A3),4,1)=»6″),»Leap»,»No»))

It can be a little confusing so let’s break it down.  Here is the pseudo syntax to help it all make sense:

  1. If the 3 position of the year is evenly divisible by 2 then A (even), else B (odd).
  2. A (even): If the 4th/last position of the year is evenly divisible by 4 then it is a leap year, if not it isn’t a leap year.
  3. B (odd): If the last position of the year is either a 2 or a 6 then it is a leap year, if not it isn’t a leap year.

Now that wasn’t too hard…but it can be difficult and get lost in the formula.

So breaking down the formula to align with this pseudo code can help.  We have to explain some of the values in our formula — so let’s start with the assumption that

  1. our date is in cell A3 (I also have the $ reference in front of A as this is the column for all of my dates, but I’m going to copy this to multiple rows). 
  2. Let’s also assume that we want to return the value of «Leap» for a leap year and «No» for any other year…we can then have other cells look for this reference without duplicating all of this logic through out your spreadsheet — one cell in each row for my situation.

If the 3 position of the year is evenly divisible by 2 then A (even), else B (odd).

=IF(MOD(MID(YEAR($A3),3,1),2)=0, {EVEN},{ODD})

Now the sub if statements

A (even): If the 4th/last position of the year is evenly divisible by 4 then it is a leap year, if not it isn’t a leap year.

IF(MOD(MID(YEAR($A3),4,1),4)=0,»Leap»,»No»

B (odd): If the last position of the year is either a 2 or a 6 then it is a leap year, if not it isn’t a leap year.

IF(OR(MID(YEAR($A3),4,1)=»2″,MID(YEAR($A3),4,1)=»6″),»Leap»,»No»

When you put it all together this is what it looks like.

=IF(MOD(MID(YEAR($A3),3,1),2)=0,IF(MOD(MID(YEAR($A3),4,1),4)=0,»Leap»,»No»),IF(OR(MID(YEAR($A3),4,1)=»2″,MID(YEAR($A3),4,1)=»6″),»Leap»,»No»))

I hope this helps or gives you ideas for other problems you can solve.

Часто в процессе работы с датами возникает необходимость динамического определения даты и последнего дня недели в месяце. Естественно можно просто посмотреть в обычный календарь, но для автоматизации некоторых задач в Excel с помощью формул нужно динамически получить дату последнего месяца особенно в феврале и определить день недели. Ведь у високосного года (366) месяц февраль имеет 29 дней, а в обычном году – 28.

Сколько дней в феврале для любого года и любой даты?

Для начала рассмотрим, как вычислить дату последнего дня февраля месяца для любого года, чтобы определить високосный год или нет:

Сколько дней в феврале.

Анализируя пример на данном рисунке, следует помнить, что данную формулу можно применять для любого месяца, чтобы получить дату последнего дня, а не только для февраля. Иначе она выглядела бы так:

=ДАТА(ГОД(A2);3;0)

Функция ДАТА позволяет генерировать дату на лету с помощью трех аргументов:

  1. Год – можно указать любое число только лишь в диапазоне от 1900 и до 9999.
  2. Месяц – любое положительное или отрицательное число.
  3. День – любое положительное или отрицательное число.

Например, если в третьем аргументе указано число 0 как номер дня, Excel вычислит дату последнего дня из предыдущего месяца. Для наглядного примера составим формулу с числом 0, которая возвращает 29 февраля 2000-го года:

=ДАТА(2000;3;0)

В следующем примере формулы вместо ввода статических значений в первые 2 аргумента функции ДАТА (год и месяц), используется функция ГОД, которая возвращает годы с исходных дат. Аналогично используется функция МЕСЯЦ возвращающая порядковый номер месяца в году из исходной даты. К этому номеру в формуле добавляется число 1. Благодаря чему мы получаем номер следующего месяца. Так как в третьем аргументе стоит число 0, автоматически получаем порядковый номер последнего дня в текущем месяце, который нас интересует.



Какой день недели для последнего дня месяца?

На этом рисунке ниже показано, как вычислить день недели и дату последнего дня февраля для любого года:

Какой день недели.

Формула состоит из двух частей, разделенных соединяющим оператором амперсантом (&» — «&):

  1. В первой части функция ТЕКСТ преобразует числовое значение, которое возвращает функция ДАТА в формат даты. Он указано во втором аргументе функции – «дд.мм.гг»
  2. Во второй части функция ТЕКСТ определяет день недели для исходной даты в первом ее аргументе, с помощью формата ячеек «дддд» указанном во втором аргументе.

Пример использования функции КОНМЕСЯЦА

В новых версиях Excel предусмотрена функция КОНМЕСЯЦА, которая служит альтернативным решением для выше описанной формулы:

КОНМЕСЯЦА.

Благодаря функции КОНМЕСЯЦА можно определять дату для текущего, предыдущего или будущего месяца заполнив лишь только 2 аргумента:

  1. Нач_дата – исходная дата или ссылка на нее.
  2. Число_месяцев – порядковый номер месяца начиная от исходной даты. Может быть любое положительное или отрицательное число. Примеры заполнения аргументов для функции КОНМЕСЯЦА, которая возвращает дату 29 февраля 2000-го года:

=КОНМЕСЯЦА(«01.01.2000»;1)

Если же мы укажем во втором аргументе отрицательное число, тогда функция возвращает нам дату последнего дня для предыдущего месяца:

=КОНМЕСЯЦА(«01.03.2000»;-1)

Разумеется, если мы указываем во втором аргументе число 0 тогда получим необходимое значение даты последнего дня для текущего месяца:

=КОНМЕСЯЦА(«01.02.2000»;0)

Как определить високосный год или нет в Excel?

Чтобы определить високосный год или нет в Excel существует множество решений. Вот несколько из них:

определить високосный год.

При работе с датами особую сложность предоставляет тот факт, что раз в 4-е года количество дней в году составляет 366, тогда как в обычных годах 365. Поэтому иногда приходится воспользоваться вышеописанными примерами и формулами для различных вычислений в Excel.

Понравилась статья? Поделить с друзьями:
  • Формула в excel ячейка минус сумма
  • Формула в excel это совокупность
  • Формула в excel это определение
  • Формула в excel это имена столбцов
  • Формула в excel это запись начинающаяся со знака