Руководство дат между датами

Excel для Microsoft 365 Excel для Microsoft 365 для Mac Excel для Интернета Excel 2021 Excel 2021 для Mac Excel 2019 Excel 2019 для Mac Excel 2016 Excel 2016 для Mac Excel 2013 SharePoint Foundation 2010 Excel 2010 SharePoint Server 2010 Excel 2007 Excel для Mac 2011 Excel Starter 2010 Windows SharePoint Services 3.0 Еще…Меньше

Вычисляет количество дней, месяцев или лет между двумя датами.

Предупреждение: Функция РАЗНДАТ предлагается в Excel для поддержки старых книг Lotus 1-2-3. В некоторых ситуациях она может выдавать неправильные результаты. Дополнительные сведения см. в разделе «Известные проблемы» в этой статье.

Синтаксис

РАЗНДАТ(нач_дата,кон_дата,единица)

Аргумент

Описание

start_date   

Обязательный

Дата, которая представляет первую или даты начала заданного периода. Даты можно вводить в виде текстовых строк в кавычках (например, «30.1.2001»), в виде порядковых номеров (например, 36921 представляет 30 января 2001 г., если используется система дат 1900) или как результаты вычисления других формул или функций (например ДАТАЗНАЧ(«30.1.2001»)).

end_date   

Обязательный

Дата окончания периода.

Единица   

Тип возвращаемой информации, где:

Единица

Возвращаемое значение

«Y«

Количество полных лет в периоде.

«M«

Количество полных месяцев в периоде.

«D«

Количество дней в периоде.

«MD«

Разница в днях между начальной и конечной датой. Месяцы и годы дат не учитываются.

Важно: Не рекомендуется использовать аргумент «MD», так как с ним связаны определенные ограничения. См. раздел «Известные проблемы» ниже.

«YM«

Разница в месяцах между начальной и конечной датой. Дни и годы дат не учитываются.

«YD«

Разница в днях между начальной и конечной датой. Годы дат не учитываются.

Замечания

  • Даты хранятся в виде последовательных чисел, что позволяет использовать их в вычислениях. По умолчанию дате 1 января 1900 года соответствует номер 1, а 1 января 2008 года — 39448, так как интервал между этими датами составляет 39 447 дней.

  • Функция РАЗНДАТ полезна в формулах расчета возраста.

  • Если онtart_date больше, чем end_date,результат будет #NUM!.

Примеры

нач_дата

кон_дата

Формула

Описание (результат)

1.1.2001

1.1.2003

=РАЗНДАТ(нач_дата,кон_дата,»Y»)

Два полных года в периоде (2).

1.6.2001

15.8.2002

=РАЗНДАТ(нач_дата,кон_дата,»D»)

440 дней между 1 июня 2001 г. и 15 августа 2002 г. (440)

1.6.2001

15.8.2002

=РАЗНДАТ(нач_дата,кон_дата,»YD»)

75 дней между 1 июня и 15 августа без учета годов дат (75)

Известные проблемы

При использовании аргумента «MD» результатом может быть отрицательное число, нуль или неверное значение. Если вы пытаетесь вычислить оставшиеся дни после последнего полного месяца, вот как можно это сделать:

=РАЗНДАТ(D17;E17;"md"), результат: 5

Эта формула вычитает первый день окончания месяца (01.05.2016) из исходной даты окончания в ячейке E17 (06.05.2016). Вот как это делается: сначала функция ДАТА создает дату 01.05.2016. Она создается с помощью года в ячейке E17 и месяца в ячейке E17. 1 обозначает первый день месяца. Результатом функции ДАТА будет 01.05.2016. Затем мы вычитаем эту дату из исходной даты окончания в ячейке E17 (06.05.2016), в результате чего получается 5 дней.

Дополнительные сведения

Вы всегда можете задать вопрос специалисту Excel Tech Community или попросить помощи в сообществе Answers community.

См. также

Функции Excel (по алфавиту)

Функции Excel (по категориям)

Рекомендации, позволяющие избежать появления неработающих формул

Нужна дополнительная помощь?

Нужны дополнительные параметры?

Изучите преимущества подписки, просмотрите учебные курсы, узнайте, как защитить свое устройство и т. д.

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

Работать с датой и временем в Google Таблицах стало легко благодаря некоторым формулам. Вы можете легко рассчитать количество дней между двумя датами, просто вычтя даты (если вам нужны все дни), или использовать формулы, чтобы определить рабочие или нерабочие дни.

В этом руководстве я расскажу о различных сценариях, в которых вы можете рассчитывать дни между двумя датами в Google Таблицах.

Одна вещь, которую вы должны знать о датах, — это то, что это просто числа, отформатированные так, чтобы они выглядели как даты. Поскольку это числа, вы можете выполнять такие операции, как сложение и вычитание с датами.

Давайте начнем!

Расчет общего количества дней между двумя датами

Предположим, у вас есть дата начала и дата окончания проекта (как показано ниже), и вы хотите быстро узнать общее количество дней между этими двумя датами.

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

Приведенная ниже формула даст вам общее количество дней между этими двумя датами.

= B2-B1

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

Легко, правда!

При вычитании дат вам нужно знать одну вещь. Количество дней, указанное в приведенном выше примере, не включает дату начала. Если вы хотите включить дату начала в результат, вам нужно добавить 1 к полученным данным.

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

= B2-B1 + 1

Расчет рабочих дней между двумя датами

Хотя легко и приятно получить общее количество дней между двумя датами, в большинстве случаев вам просто нужны не общие дни, а рабочие дни.

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

В конце концов, если это проект, вы не можете ожидать, что ваша команда будет работать по выходным … верно!

Подсчитать количество рабочих дней между двумя датами не так просто, как вычитание значений, но это не так сложно (поскольку в Google Таблицах есть формула для этого).

Предположим, у вас есть набор данных, как показано ниже, и вы хотите рассчитать количество рабочих дней между этими двумя датами.

Приведенная ниже формула даст вам количество рабочих дней между этими двумя датами:

= ЧИСТРАБДНИ (B1; B2)

Функция ЧИСТРАБДНИ (как следует из названия) дает вам сетевые дни между двумя датами (она принимает дату начала и дату окончания в качестве входных аргументов)

О функции ЧИСТРАБДНИ вам нужно знать две вещи:

  • Она включает дату начала и окончания при расчете количества рабочих дней.
  • Суббота и воскресенье считаются выходными. Таким образом, она считает все дни с понедельника по пятницу.

Хотя это может сработать в большинстве случаев, есть два распространенных сценария, в которых вы можете захотеть настроить эту формулу:

  • Вам нужно исключить праздничные дни из рабочих дней
  • У тебя разные выходные. Например, вы можете выбрать только воскресенье, так как выходные, а суббота для вас — рабочий день. Или вы из стран, где выходные дни — пятница и суббота (а не суббота и воскресенье)

Хорошая новость в том, что Google Таблицы легко справятся со всем этим.

Расчет рабочих дней без учета государственных праздников

Чтобы это сработало, у вас должен быть список праздников, которые вы хотите исключить. В большинстве компаний есть календарь праздников, которым вы можете пользоваться. Или, если вы фрилансер или малый бизнес, вы тоже можете создать это самостоятельно.

Ниже приведен пример календаря праздников, который у меня есть на 2020 год.

Теперь, когда я подсчитываю количество рабочих дней между двумя датами в Google Таблицах, я не хочу считать дни выходных.

К счастью, функция ЧИСТРАБДНИ уже имеет эту встроенную функцию. Вы можете указать диапазон, в котором есть праздничные дни, и он будет автоматически игнорировать их при вычислении рабочих дней.

Предположим, у вас есть набор данных, как показано ниже:

Приведенная ниже формула даст вам количество рабочих дней между датой начала и окончания, не считая праздников:

= ЧИСТРАБДНИ (B1; B2; E2: E12)

Эта формула принимает три аргумента:

  • Дата начала — B1 в этом примере
  • Дата окончания — B2 в этом примере
  • Диапазон с праздничными датами — E2: E12 в этом примере.

Обратите внимание, что функция ЧИСТРАБДНИ достаточно умна, чтобы самостоятельно настраивать праздничные и выходные дни. Например, в следующих праздничных датах с 1 апреля по 30 декабря восемь праздников.

Но функция ЧИСТРАБДНИ учитывает только шесть из них, а два в любом случае приходится на выходные дни (Пасха и День независимости). Поскольку формула ЧИСТРАБДНИ в любом случае не учитывает выходные дни при вычислении, она также будет следить за тем, чтобы дни не удалялись дважды (как в выходные, так и в праздничные дни).

Расчет рабочих дней, когда выходные не суббота и воскресенье

Хотя функция ЧИСТРАБДНИ автоматически предполагает, что выходные дни — это суббота и воскресенье, это может быть не так для всех. У некоторых из вас может быть только воскресенье, а некоторые могут работать в странах, где пятница и суббота нерабочие дни, а воскресенье — рабочее время.

Чтобы настроить эти варианты, в Google Таблицах есть еще одна функция, которую вы можете использовать.

NETWORKDAYS.INTL — где INTL означает международный.

Когда вы используете функцию NETWORKDAYS.INTL, помимо даты начала, даты окончания и праздников, она также позволяет вам указать выходные, где выходными могут быть любой день недели или любые два последовательных дня недели,

Допустим, у вас есть пример ниже, и вы хотите рассчитать количество рабочих дней, когда выходные дни — пятница и суббота.

Следующая формула даст вам результат:

= ЧИСТРАБДНИ.INTL (B1; B2,7; E2: E12)

Приведенная выше формула вернет 191, то есть количество дней между датами начала и окончания, с пятницей и субботой в качестве выходных.

Эта формула принимает четыре аргумента:

  • Дата начала — B1 в этом примере
  • Дата окончания — B2 в этом примере
  • Выходные — 7 в этом примере. Здесь вы указываете выходные дни, которые должна учитывать эта формула. Почему 7, посмотрите таблицу ниже.
  • Диапазон с праздничными датами — E2: E12 в этом примере.

Почему я использовал 7, чтобы сделать пятницу и субботу выходными?

Вот как была закодирована эта формула. Эти числа указывают выходные дни и предварительно закодированы в формуле.

Поэтому, когда я использую 7, он знает, что я хочу, чтобы выходные были пятницей и субботой.

Ниже приведена таблица, в которой показаны все числа, которые вы можете использовать, и их значение:

Аргумент Выходные дни
1 Суббота / воскресенье — выходные дни
2 Воскресенье / понедельник — выходные дни
3 Понедельник / вторник — выходные дни
4 Вторник / среда — выходные дни
5 Среда / четверг — выходные дни
6 Четверг / пятница — выходные дни
7 Пятница / суббота — выходные дни
11 Воскресенье — единственный выходной день
12 Понедельник — единственный выходной день
13 Вторник — единственный выходной день
14 Среда — единственный выходной день
15 Четверг — единственный выходной день
16 Пятница — единственный выходной день
17 Суббота — единственный выходной день

Основываясь на приведенной выше таблице, если вы хотите, чтобы выходными считалось только воскресенье (при шестидневной рабочей неделе), вам нужно использовать 11 в качестве третьего аргумента в функции NETWORKDAYS.INTL.

Расчет рабочих дней с непоследовательными выходными днями

Предположим, вы работаете на работе только в определенные дни недели (скажем, понедельник, вторник и четверг).

При таком расположении становится еще труднее подсчитать количество рабочих дней между двумя заданными датами.

К счастью, когда формулировалась функция NETWORKDAYS.INTL, это также было учтено.

Когда вы используете функцию NETWORKDAYS.INTL для чего-то вроде этого, вам необходимо четко указать, какие дни рабочие, а какие нет.

И вы делаете это, используя серию из семи последовательных чисел (где каждое число равно 1 или 0). Эти числа представляют семь дней в неделе. Первое число в ряду представляет понедельник, второе — вторник и так далее.

«0» означает рабочий день, а «1» — нерабочий день. Таким образом, 0000011 будет означать, что первые пять дней (с понедельника по пятницу) рабочие, а суббота и воскресенье — выходные (или нерабочие дни).

Теперь вы можете создать любую комбинацию недели с сочетанием рабочих и нерабочих дней. И они не обязательно должны быть последовательными.

Итак, в нашем примере, где понедельник, вторник и четверг — рабочие дни, код будет 0010111.

И вы можете использовать этот код в функции NETWORKDAYS.INTL, как показано ниже:

= ЧИСТРАБДНИ.INTL (B1; B2; «0010111»; E2: E12)

Обратите внимание, что третий аргумент — это строка чисел, обозначающая рабочие и нерабочие дни. Это должно быть в двойных кавычках

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

Рассчитать все понедельники между двумя датами

Иногда может потребоваться вычисление не рабочих дней, а числа одного конкретного дня недели.

Например, предположим, что вы хотите рассчитать количество понедельников, которые попадают в заданный диапазон дат (с учетом праздничных дней).

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

Предположим, у вас есть приведенный ниже набор данных, в котором вы хотите найти число понедельника между начальной и конечной датами:

Чтобы вычислить количество понедельников, я буду использовать функцию ЧИСТРАБДНИ.INTL со строкой из семи последовательных чисел, которые представляют дни недели.

Это не что иное, как разновидность примера, в котором мы вычисляем непоследовательные рабочие дни. В этом примере нам нужно указать только понедельник в качестве рабочего дня, а все остальные — выходные.

Таким образом, строка чисел будет «0111111», где 0 представляет рабочий день понедельника.

Приведенная ниже формула даст вам количество рабочих понедельников между датой начала и окончания (с учетом праздников):

= ЧИСТРАБДНИ.INTL (B1; B2; «0111111»; E2: E12)

Если вы знаете, как использовать функции NETWORKDAYS и NETWORKDAYS.INTL в Google Таблицах, вы можете легко управлять ситуациями, когда вам нужно рассчитывать рабочие дни между двумя днями.

Надеюсь, вы нашли этот урок полезным.

В некоторых случаях, если у вас есть конкретная дата начала и дата окончания, вам может потребоваться перечислить все даты между этими двумя заданными датами в Excel. Теперь в этом руководстве рассказывается о методах составления списка всех дат между двумя датами в Excel.

Список всех дат между двумя датами по формулам

Список всех дат между двумя датами с помощью VBA

Список всех дат между двумя датами с помощью Kutools for Excel


Содержание

  1. Список всех дат между двумя датами по формулам
  2. Перечислить все даты между двумя датами с помощью VBA
  3. Список всех дат между двумя датами с помощью Kutools for Excel
  4. Список всех дат между двумя датами
  5. Относительные статьи:

Список всех дат между двумя датами по формулам

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

1. Введите даты начала и окончания в две ячейки, здесь я ввожу их в ячейки A1 и A2. См. Снимок экрана:

2. Затем перейдите в ячейку C1 и введите в нее эту формулу = A1 + 1, затем нажмите клавишу Enter . См. Снимок экрана:

3. Затем в ячейке C2 введите в нее эту формулу = IF ($ A $ 1 + ROW (A1)> = $ A $ 2-1, “”, C1 + 1), затем перетащите дескриптор автозаполнения вниз к ячейкам, пока не появится пустая ячейка появляется. См. Скриншоты:

Затем вы увидите, что все даты между двумя заданными датами перечислены в столбце.

Примечание.

В приведенных выше формулах A1 – это начальная дата, A2 – конечная date, а C1 – первая дата в диапазоне дат.


Перечислить все даты между двумя датами с помощью VBA

Если вас интересует код макроса, вы можете использовать приведенный ниже VBA, чтобы перечислить все даты между двумя заданными датами в Excel.

1. Введите дату начала и дату окончания в две ячейки, здесь я ввожу ячейки A1 и B1. См. Снимок экрана:

2. Нажмите клавиши Alt + F11 , чтобы открыть окно Microsoft Visual Basic для приложений .

3. Затем нажмите Insert > Module , скопируйте и вставьте ниже код VBA в всплывающее окно Module .

VBA: список всех дат между двумя датами.

4. Нажмите Выполнить или F5 , чтобы запустить VBA, и появится диалоговое окно для выбора даты начала, затем нажмите ОК , затем выберите дату окончания во втором всплывающем диалоговом окне. См. Снимок экрана:

5. Нажмите OK , затем выберите ячейку для отображения дат, а затем нажмите OK . Теперь вы можете видеть, что перечислены все даты между двумя датами.. См. Скриншоты:

Примечание : список, созданный этим VBA, включает дату начала и дату окончания.


Список всех дат между двумя датами с помощью Kutools for Excel

На самом деле, если вы установили Kutools for Excel – удобный добавить в инструмент, вы также можете использовать Вставить случайные данные для решения этой проблемы.

Kutools for Excel , с более чем 300 удобными функциями Excel, повысят эффективность вашей работы и сэкономят ваше рабочее время.

Перейти к загрузке
Бесплатная пробная версия 30 днейПокупка
PayPal/MyCommerce

После бесплатной установки Kutools for Excel, сделайте следующее: р>

1. Выберите столбец, в котором вы хотите указать даты между двумя датами, и нажмите Kutools > Вставить > Вставить случайные данные . См. Снимок экрана:

2. Затем в диалоговом окне Вставить случайные данные нажмите вкладку Дата , затем выберите начальную и конечную даты из От и В список, затем не забудьте проверить Workday , Weekend и Уникальные значения флажки. См. Снимок экрана:

3. Нажмите Ok , чтобы закрыть диалоговое окно, и появится другое диалоговое окно Kutools for Excel , просто нажмите Да . Затем вы можете увидеть даты между датой начала и датой окончания. См. Скриншоты:

4. Теперь вам нужно отсортировать список дат в нужном вам порядке. Нажмите Данные > Сортировать от старых к новым . Затем вы можете увидеть, что даты отсортированы от самой старой до самой новой. См. Скриншоты:

С помощью утилиты Insert Random Data вы также можете вставлять случайное целое число, случайную строку, случайное время и т. д. Щелкните здесь, чтобы узнать больше о вставке случайных данных.

Список всех дат между двумя датами


Относительные статьи:

  • Создание динамического списка имен рабочих листов


Содержание

  • 1 Что возвращает функция
  • 2 Синтаксис
  • 3 Аргументы функции
  • 4 Дополнительная информация
  • 5 2 популярных способа сравнения 2 дат в Excel
    • 5.1 Первая дата больше второй, или нет
    • 5.2 Функция ЕСЛИ, значение ИСТИНА или ЛОЖЬ
  • 6 Функция РАЗНДАТ – разность двух дат в днях, месяцах и годах
    • 6.1 Пример №1. Подсчет количества лет между двумя датами
    • 6.2 Разница дат в полных месяцах
    • 6.3 Разница в днях без учета лет
    • 6.4 Количество рабочих дней между двумя датами
    • 6.5 Сдвиг даты на заданное количество дней
    • 6.6 Сдвиг даты на заданное количество рабочих дней
    • 6.7 Вычисление дня недели
    • 6.8 Вычисление временных интервалов
  • 7 Еще раз о кривизне РАЗНДАТ()
  • 8 Формула разница дат в Excel

Что возвращает функция

Число, обозначающее количество лет/месяцев/дней между двумя датами. Какие значения будут отображаться (год, месяц или дни) зависит от того, что будет указано вами в атрибутах функции.

Синтаксис

=DATEDIF(start_date,end_date,unit) – английская версия

=РАЗНДАТ(нач_дата;кон_дата;единица) – русская версия

Аргументы функции

  • start_date (нач_дата): дата, с которой начинается вычисление разницы во времени между двумя датами. Дата может быть указана как текст в кавычках, числовое значение, или результат какого-либо вычисления (например в функции ДАТА());
  • end_date (кон_дата): дата, на которой вычисление разницы во времени между двумя датами будет окончено. Она, также, может быть указана как текст в кавычках, числовое значение, или результат какого-либо вычисления;
  • unit (единица): Этот аргумент определяет в каком измерении будет отображена разница между двумя датами (год, месяц, день). Существует 6 различных типов отражения данных:
  • “Y” – возвращает данные в количестве лет между двумя датами;
  • “M” – возвращает данные в количестве месяцев между двумя датами;
  • “D” – возвращает данные в количестве дней между двумя данными;
  • “MD” – возвращает данные в количестве дней между двумя датами, но не учитывает целые годы, месяца, которые уже прошли при расчете данных. Например, если вы рассчитываете количество дней между двумя датами: 1 Января 2017 и 3 Марта 2017, функция выдаст значение “2”, так как не будет учитывать два прошедших полных месяцев (Январь, Февраль);
  • “YM” – возвращает данные в количестве месяцев между двумя датами, но не учитывает целые годы, которые уже прошли между двумя расчетными данными;
  • “YD” – возвращает данные в количестве дней между двумя датами, но не учитывает целые годы, которые уже прошли между двумя расчетными датами.

Дополнительная информация

  • При вводе функции в ячейку, она не отображается в быстром меню выбора функций. Тем не менее функция работает во всех версиях Excel. Важно знать аргументы функции и как ими пользоваться;
  • Данные даты в функции могут быть введены как:
    – дата указанная в виде текста в кавычках;
    – число;
    – как результат вычисления, формулы, функции.

2 популярных способа сравнения 2 дат в Excel

Итак, если нам требуется сравнить две даты между собой, это можно сделать двумя основными методами в зависимости от поставленной задачи. Давайте узнаем, какие они. В этом нет ничего сложного, формулы довольно простые и почти не отличаются от тех, которые применяются для работы с числами. Не забываем о том, что дата воспринимается электронной таблицей, как число, и обрабатывается аналогичным образом. 

Первая дата больше второй, или нет

В этом случае нужно использовать аналогичную формулу, которая используется для проверки чисел: =A1>A2. Если эта проверка подтверждается, то в ячейку, куда была записана эта формула, возвращается значение “ИСТИНА”. Если же первое число меньше второго, то тогда будет записано “ЛОЖЬ”. Аналогично, только зеркально противоположно с формулой =A1

Функция ЕСЛИ, значение ИСТИНА или ЛОЖЬ

Это уже более сложный вариант, который дает возможность не только говорить, действительно ли одна дата больше другой, но и указывать, на какое количество дней. Чтобы это сделать, необходимо нажать по ячейке и записать туда формулу =ЕСЛИ(A2>B2;»Первая дата больше второй на»&» «&A2-B2&» «&»дней»;»Первая дата меньше второй на»&» «&B2-A2&» «&»дней»)

Как в Excel сравнить 2 даты между собой - простая инструкция
1

Здесь мы осуществляем проверку двух дат, и исходя из того, что у нас получилось в итоге, выводим результат, на сколько дней первая дата больше, чем вторая. Чтобы это сделать, нами был использовал оператор &, который объединяет две строки текста между собой и объединенный результат возвращает в ячейку. Далее получившийся текст можно использовать сам по себе или в других формулах.

Функция РАЗНДАТ – разность двух дат в днях, месяцах и годах

Предположим, вы работаете в пенсионном фонде и хотите определить трудовой стаж в количестве лет, дней, месяцев и так далее. Это можно сделать с помощью функции РАЗНДАТ.

Ее синтаксис элементарный.

РАЗНДАТ(начальная_дата; конечная_дата; способ_измерения)

Единственный из этих аргументов, который действительно может вызвать вопросы у неподготовленного читателя – это способ измерения. С его помощью мы задаем, в каких единицах будет измеряться разница между датами. Это может быть количество месяцев, лет или количество месяцев без учета лет. Еще один вариант – это количество дней без учета месяцев и лет. 

Важно учесть, что в некоторых случаях эта функция может вернуть неправильное значение. Это бывает, когда день первой даты больше, чем день второй. Такая ситуация может быть, например, когда нужно рассчитать количество дней между двумя датами, первая из которых происходила в конце месяца, а другая – в начале следующего.

Пример №1. Подсчет количества лет между двумя датами

DATEDIF (РАЗНДАТ) в Excel

На примере выше, формула возвращает количество лет между двумя датами. Например, функция вернет значение “27” если вы захотите посчитать количество полных лет между двумя датами 19 июня 1989 года и 26 марта 2017 года. Система подсчитывает количество полных лет и игнорирует количество месяцев и дней между датами.

Разница дат в полных месяцах

Чтобы определить количество полных месяцев, которое прошло с одной даты до другой, необходимо воспользоваться такой же самой формулой, которая была приведена выше, только третий аргумент должен содержать аргумент m.

То есть, формула следующая.

=РАЗНДАТ(A2;B2;”m”)

Эта формула также может давать несколько неточные данные. Поэтому всегда нужно перепроверять значения самостоятельно. 

Разница в днях без учета лет

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

Как в Excel сравнить 2 даты между собой - простая инструкция
1

Эта формула вернет правильный результат только тогда, когда в компьютере показано правильное время. Конечно, в большинстве современных операционных системах дата и время определяется автоматически, но иногда случаются сбои. Поэтому перед тем, как подсчитывать разницу в днях без учета лет, нужно убедиться, что на компьютере установлена правильная дата и время. Особенно если электронная таблица пересылалась другому человеку. 

Количество рабочих дней между двумя датами

Здесь ситуация чуть сложнее. Необходимо не учитывать субботы с воскресеньями и праздники. Для такого расчета лучше воспользоваться функцией ЧИСТРАБДНИ (NETWORKDAYS) из категории Дата и время. В качестве аргументов этой функции необходимо указать начальную и конечную даты и ячейки с датами выходных (государственных праздников, больничных дней, отпусков, отгулов и т.д.):

как сделать сравнение дат в excel

Примечание: Эта функция появилась в стандартном наборе функций Excel начиная с 2007 версии. В более древних версиях сначала необходимо подключить надстройку Пакета анализа. Для этого идем в меню Сервис — Надстройки (Tools — Add-Ins) и ставим галочку напротив Пакет анализа (Analisys Toolpak). После этого в Мастере функций в категории Дата и время появится необходимая нам функция ЧИСТРАБДНИ (NETWORKDAYS).

Сдвиг даты на заданное количество дней

Поскольку одни сутки в системе отсчета даты Excel принимаются за единицу (см.выше), то для вычисления даты, отстоящей от заданной на, допустим, 20 дней, достаточно прибавить к дате это число.

Сдвиг даты на заданное количество рабочих дней

Эту операцию осуществляет функция РАБДЕНЬ (WORKDAY). Она позволяет вычислить дату, отстоящую вперед или назад относительно начальной даты на нужное количество рабочих дней (с учетом выходных суббот и воскресений и государственных праздинков). Использование этой функции полностью аналогично применению функции ЧИСТРАБДНИ(NETWORKDAYS) описанной выше.

Вычисление дня недели

Вас не в понедельник родили? Нет? Уверены? Можно легко проверить при помощи функции ДЕНЬНЕД (WEEKDAY) из категории Дата и время.

как сделать сравнение дат в excel

Первый аргумент этой функции — ячейка с датой, второй — тип отсчета дней недели (самый удобный — 2).  

Вычисление временных интервалов

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

Нюанс здесь только один. Если при сложении нескольких временных интервалов сумма получилась больше 24 часов, то Excel обнулит ее и начнет суммировать опять с нуля. Чтобы этого не происходило, нужно применить к итоговой ячейке формат 37:30:55:

как сделать сравнение дат в excel

Еще раз о кривизне РАЗНДАТ()

Найдем разницу дат 16.03.2015 и 30.01.15. Функция РАЗНДАТ() с параметрами md и ym подсчитает, что разница составляет 1 месяц и 14 дней. Так ли это на самом деле?

Вычисление разности дат в Microsoft Excel. Функция DATEDIF (РАЗНДАТ) в Excel. Как использовать?

Имея формулу, эквивалентную РАЗНДАТ() , можно понять ход вычисления. Очевидно, что в нашем случае количество полных месяцев между датами = 1, т.е. весь февраль. Для вычисления дней, функция находит количество дней в предыдущем месяце относительно конечной даты, т.е. 28 (конечная дата принадлежит марту, предыдущий месяц — февраль, а в 2015г. в феврале было 28 дней). После этого отнимает день начала и прибавляет день конечной даты = ДЕНЬ(КОНМЕСЯЦА(ДАТАМЕС(B6;-1);0))-ДЕНЬ(A6)+ДЕНЬ(B6) , т.е. 28-30+16=14. На наш взгляд, между датами все же 1 полный месяц и все дни марта, т.е 16 дней, а не 14! Эта ошибка проявляется, когда в предыдущем месяце относительно конечной даты, дней меньше, чем дней начальной даты.

Формула возвращает разницу дат между сегодняшней и установленной планом в днях. Для решения данной задачи используется функция РАЗНДАТ в Excel: где найти эту формулу?

Данную функцию вы не найдете в мастере функций и даже на панели «ФОРМУЛЫ». Ее всегда нужно вводить вручную. Первым аргументом функции всегда должна быть новейшая дата, а вторым всегда – старшая дата. Третий аргумент функции определяет единицу измерения количества, которое возвращает функция =РАЗНДАТ(). В данном случае это символ «d» – дней. Это значит, что функция возвращает количество дней. Дальше следует оператор <7. То есть формула проверяет, если функция возвращает число меньше чем 7, то формула возвращает значение ИСТИНА и к текущей ячейке применяется условное форматирование. Ссылки на ячейки в первом аргумент абсолютная (значение неизменяемое), а во втором аргументе – относительная, так как проверятся будут несколько ячеек в столбце C.

При необходимости можно к данному диапазону добавить новое правило условного форматирования, которое будет предупреждать нас об окончании сроков за 2 недели.

Цвет форматирования для второго правила можно задать желтый. К одному и тому же диапазону должно быть применено 2 правила условного форматирования. Чтобы проверить выберите инструмент: «ГЛАВНАЯ»-«Стили»-«Условное форматирование»-«Управление правилами». Так как у нас сначала выполняется верхнее правило следует изменить их порядок в появившемся окне: «Диспетчер правил условного форматирования». Иначе все выделенные задачи будут иметь желтую заливку ячеек.

Полезный совет! Если к одному и тому же диапазону присвоено много правил – соблюдайте иерархию приоритетов порядка их выполнения в диспетчере управления правилами. Чем выше правило, тем выше его приоритет выполнения по отношению к другим расположенных ниже под ним.

Источники

  • https://excelhack.ru/funkciya-datedif-razndat-v-excel/
  • https://office-guru.ru/excel/data-vremja/kak-v-excel-sravnit-2-daty-mezhdu-soboj-prostaya-instrukciya.html
  • http://word-office.ru/kak-sdelat-sravnenie-dat-v-excel.html
  • https://excelka.ru/voprosy/kak-v-excel-sravnit-dve-daty.html
  • https://exceltable.com/formatirovanie/raznica-mejdu-datami

Download PC Repair Tool to quickly find & fix Windows errors automatically

Imagine a situation in which you need to create a date-wise table. For example, you are creating a schedule where you need to mention a date-wise list of activities. In such a case, you would need a list of dates. Obviously, no list is unlimited, so your list would have a starting and ending date.

For such cases, you could use the method explained in this article to obtain the list of dates between two dates as a list in a column. You have two ways of proceeding:

  1. Create a list of sequential dates in Excel using the Fill handle
  2. Obtain a list of all dates between two given dates in Excel using formula.

1] Create a list of sequential dates in Excel using the Fill handle

Create a list of sequential dates in Excel using the Fill handle

Microsoft Excel has a Fill handle, which makes it easy to create a list of sequential dates. While it doesn’t exactly help with dates between two given dates, using this option is much easier than using the formula.

Simply Enter the date in say cell A1 and click anywhere outside the cell. Then click on the cell again to activate the Fill handle.

Pull the Fill handle down to create a list of sequential dates in Excel.

Obtain a list of all dates between two given dates in Excel using formula

The formula to obtain a list of all dates between two given dates in Excel is a little complicated. We will explain it using an example:

Let us suppose the starting date is mentioned in cell A1, and the ending date is mentioned in cell A2. You need to obtain the list in column C. The procedure for finding the list of dates would be as follows:

First, enter the formula and press Enter:

=A1+1 in cell C1

It will display the date next to the starting date in cell C1.

List all dates between two dates in Excel

Now, type the following date in cell C2:

=IF($A$1+ROW(A1)>=$A$2-1,"",C1+1)

Enter the formula in C1

Click anywhere outside cell C2 and then back on C2 to highlight the option to pull the formula down. Pull the formula down till you start getting blank results on the cells. Hit Enter to display the results.

End result

The problem with this formula is that it would be hard to define the syntax or modify it. Furthermore, the dates aren’t exactly in order. The first and last dates remain in cells A1 and A2. The dates in column C are the ones between these dates.

The resolution to this problem could involve a bit of dragging, cutting, and pasting.

Hope this helps.

Ezoic

Karan is a B.Tech, with several years of experience as an IT Analyst. He is a passionate Windows user who loves troubleshooting problems and writing about Microsoft technologies.

2.1. Использованиеjava.util.Date для определения разницы в днях

Давайте начнем с использования основных API-интерфейсов Java для расчета и определения количества дней между двумя датами:

@Test
public void givenTwoDatesBeforeJava8_whenDifferentiating_thenWeGetSix()
  throws ParseException {

    SimpleDateFormat sdf = new SimpleDateFormat("MM/dd/yyyy", Locale.ENGLISH);
    Date firstDate = sdf.parse("06/24/2017");
    Date secondDate = sdf.parse("06/30/2017");

    long diffInMillies = Math.abs(secondDate.getTime() - firstDate.getTime());
    long diff = TimeUnit.DAYS.convert(diffInMillies, TimeUnit.MILLISECONDS);

    assertEquals(diff, 6);
}

2.2. Использованиеjava.time — начиная с Java 8

Теперь вычисление разницы станет более интуитивным, если мы используемLocalDate, LocalDateTime для представления двух дат (со временем или без него) в сочетании сPeriod иDuration:.

РазницаLocalDate:

@Test
public void givenTwoDatesInJava8_whenDifferentiating_thenWeGetSix() {
    LocalDate now = LocalDate.now();
    LocalDate sixDaysBehind = now.minusDays(6);

    Period period = Period.between(now, sixDaysBehind);
    int diff = period.getDays();

    assertEquals(diff, 6);
}

СлучайLocalDateTime:

@Test
public void givenTwoDateTimesInJava8_whenDifferentiating_thenWeGetSix() {
    LocalDateTime now = LocalDateTime.now();
    LocalDateTime sixMinutesBehind = now.minusMinutes(6);

    Duration duration = Duration.between(now, sixMinutesBehind);
    long diff = Math.abs(duration.toMinutes());

    assertEquals(diff, 6);
}

Here ‘немного подробнее об этом API.

2.3. Использованиеjava.time.temporal.ChronoUnit для определения разницы в секундах

API времени в Java 8 представляет собой единицу даты и времени, например секунды или дни, используяTemporalUnit interface. Each unit provides an implementation for a method named between to calculate the amount of time between two temporal objects in terms of that specific unit.

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

@Test
public void givenTwoDateTimesInJava8_whenDifferentiatingInSeconds_thenWeGetTen() {
    LocalDateTime now = LocalDateTime.now();
    LocalDateTime tenSecondsLater = now.plusSeconds(10);

    long diff = ChronoUnit.SECONDS.between(now, tenSecondsLater);

    assertEquals(diff, 10);
}

ChronoUnit предоставляет набор конкретных единиц времени, реализуя интерфейсTemporalUnit. It’s highly recommended to static import the ChronoUnit enum values to achieve more readability:

import static java.time.temporal.ChronoUnit.SECONDS;

// omitted
long diff = SECONDS.between(now, tenSecondsLater);

Кроме того, мы можем передать любые два совместимых временных объекта методуbetween , дажеZonedDateTime.

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

@Test
public void givenTwoZonedDateTimesInJava8_whenDifferentiating_thenWeGetSix() {
    LocalDateTime ldt = LocalDateTime.now();
    ZonedDateTime now = ldt.atZone(ZoneId.of("America/Montreal"));
    ZonedDateTime sixMinutesBehind = now
      .withZoneSameInstant(ZoneId.of("Asia/Singapore"))
      .minusMinutes(6);

    long diff = ChronoUnit.MINUTES.between(sixMinutesBehind, now);

    assertEquals(diff, 6);
}

2.4. Используяjava.time.temporal.Temporaluntil()

Любой объектTemporal, например LocalDate or ZonedDateTime, provides an until method to calculate the amount of time until another temporal in terms of the specified unit:

@Test
public void givenTwoDateTimesInJava8_whenDifferentiatingInSecondsUsingUntil_thenWeGetTen() {
    LocalDateTime now = LocalDateTime.now();
    LocalDateTime tenSecondsLater = now.plusSeconds(10);

    long diff = now.until(tenSecondsLater, ChronoUnit.SECONDS);

    assertEquals(diff, 10);
}

Temporal#until иTemporalUnit#between  — это два разных API для одной и той же функциональности.

Skip to content

Как посчитать количество дней между датами в Excel? Примеры и советы.

Из этого обзора вы узнаете несколько быстрых и простых способов подсчета, сколько дней проходит между двумя датами в Excel.

Вам интересно, сколько составляет разница в днях, месяцах и годах между двумя датами? Может быть, вам нужно знать количество дней между сегодняшним днем ​​и какой-либо точкой в прошлом или будущем?

Какова бы ни была ваша проблема, один из приведенных ниже примеров в Excel наверняка подскажет вам решение.

  • Простой калькулятор дней
  • Как рассчитать разницу в днях?
  • Расчёт разницы между датами при помощи функции РАЗНДАТ (DATEDIF)
  • Разница в днях
  • В полных месяцах
  • В полных годах
  • В полных месяцах без учёта лет
  • Разница в днях без учета месяцев и лет
  • В днях без учёта лет
  • Как посчитать разницу в днях, месяцах и годах
  • Подсчёт с помощью функции ДНИ
  • Как рассчитать количество дней между сегодняшним днем и другой датой
  • Мастер даты и времени — простой способ создавать формулы разницы дат в Excel

Простой калькулятор дней.

Если вы ищете быстрый ответ, просто укажите две даты в соответствующих ячейках, и наш калькулятор покажет вам, сколько суток между ними:

Хотите узнать формулу, которая рассчитала эти результаты? Это так же просто, как =B3-B2:)

Обратите внимание, что нужно четко знать, что именно вы хотите подсчитать: «дни включительно» или «дни между».

Кроме того, прежде чем выполнять операции с датой-временем, нужно установить правильный формат в ячейках вашей таблицы. Чаще всего Эксель сам подбирает нужный формат представления данных, но все же лучше подстраховаться.

Для этого выберите клетку или диапазон ячеек с числами, которые вы хотите представить как даты, и нажмите комбинацию клавиш Ctrl + 1, чтобы открыть диалоговое окно «Формат ячеек». На вкладке «Числовые форматы» в пункте «Дата», выберите подходящий для вас внешний вид в разделе «Тип» и нажмите кнопку «ОК».

Далее вы найдете подробное объяснение того, как работает эта формула, и узнаете несколько других способов вычисления.

Как рассчитать разницу в днях?

Самый простой способ рассчитать дни между датами в Эксель — вычесть одну из другой:

= Более новая — Более старая

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

=B3 — В2

где В2 — более ранняя, а B3 — более.

Результатом подсчета является целое число, которое представляет количество дней внутри временного интервала.

Однако, будьте здесь внимательны: при подобном подсчете отработанных дней в том случае, если человек работал и в первый, и в последний день, то 1 день будет «потерян». Добавьте в вашу формулу +1 день.

Как работает эта формула?

Как вы, вероятно, знаете, Microsoft Excel хранит даты в виде порядковых номеров, начинающихся с 1 января 1900 года, которому соответствует номер 1. В этой системе 2 января 1900 года сохраняется как число 2, 3 января 1900 года как 3 и так далее. Таким образом, вычитая одну дату из другой, вы фактически вычитаете целые числа, представляющие их.

В нашем примере формула в C5 на самом деле вычитает 43892 (числовое значение 2 марта 2020г.) из 43900 (числовое значение 10 марта 2020г.) и возвращает результат 8 дней.

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

Рассчитать разницу между датами в Excel с помощью РАЗНДАТ (DATEDIF).

Другой способ — как в Экселе посчитать дни в заданном временном интервале — использование функции РАЗНДАТ (в английском варианте – DATEDIF), которая специально разработана для расчета разности во времени и представления её в различных единицах: дни, месяцы и годы.

А вот ее синтаксис:

= РАЗНДАТ(дата_нач; дата_кон; аргумент)

где

дата_нач и дата_кон — две временных отметки, разницу между которыми необходимо рассчитать,

аргумент – указывает, как представить результат; может иметь одно из следующих значений:

  • Y Число полных лет.
  • M Число полных месяцев.
  • D Число дней.
  • MD Разница в днях (значения месяца и года не учитываются).
  • YM Разница в месяцах (значения дня и года не учитываются).
  • YD Разница в днях, игнорируя значения года.

Чтобы получить количество дней между двумя датами, укажите момент  начала в первом аргументе, срок окончания во втором, и «d» в последнем третьем:

РАЗНДАТ(дата_нач; дата_кон; «d»)

DATEDIF (start_date, end_date, «d»)

Примечание. РАЗНДАТ (DATEDIF) — недокументированная функция, то есть ее нет в мастере функций в Excel. Вы не сможете ее вставить при помощи кнопки fx или меню Вставка — Функция.   Чтобы создать формулу РАЗНДАТ в таблице Экселя, вам нужно вписать ее название руками и ввести все аргументы вручную, подсказок ввода не будет.

В ней вы можете указывать исходные данные различными способами, такими как:

  • Ссылки на ячейки. Например, следующая формула вернет количество дней между A3 и B3:

=РАЗНДАТ(A3; B3; «D»)

Текстовые выражения. Excel понимает даты в различных форматах, например, «2 март 2020», «20.03.2020», «20/03/2020», «2020/03/20», «20-03-2020», «2020-03-20» и т.д.

Вот примеры расчета количества дней во временных промежутках:

=РАЗНДАТ(«2 март 2020»; «2020-03-20»; «D»)

=РАЗНДАТ(«02-03-2020»; «20/03/2020»; «D»)

Естественно, эти значения могут быть записаны и в ячейках, а формула на них будет ссылаться.

  • Порядковые номера. Поскольку Microsoft Excel хранит каждую дату как порядковый номер, начинающийся с 1 января 1900 года, вы можете поместить числа, соответствующие датам, непосредственно в формулу. Хотя этот метод полностью поддерживается, все же он не является надежным, поскольку нумерация различается в разных компьютерных системах (Windows и MacOS).

В системе дат 1900 года следующая формула является еще одним способом вычисления месяцев по условиям из предыдущего примера (2 марта 2020 года и 10 марта 2020 года):

=РАЗНДАТ(43900; 43892; «D»)

  • Результаты выполнения других функций. Например, следующая формула подсчитывает, срок между сегодня (18 марта 2020г.) и 9 мая 2020 года.

=РАЗНДАТ(СЕГОДНЯ(); «9-05-2020»; «D»)

В отличие от операции вычитания, функция  РАЗНДАТ может только вычесть более старую дату из более новой, но не наоборот. Если точка начала позже точки окончания, расчет выдает ошибку #ЧИСЛО!, как в строке 4 на скриншоте ниже:

1.     Разница в днях.

В нашем примере формула расчета в D3 выглядит следующим образом:

=РАЗНДАТ(A3; B3; «D»)

Обратите также внимание, что при простом вычитании дат, которые также содержат время, мы получаем в результате дробное число. Так произошло в С5 и С6. Что делать с такими дробями – поговорим чуть позже. А вот время здесь просто игнорируется. В этом вы можете убедиться в диапазоне D5:I6.

Аналогичный результат можно получить формулами:

=ЦЕЛОЕ(В2)-ЦЕЛОЕ(А2)

Время, то есть дробная часть, будет отброшено.

Кстати, если нужно подсчитать только рабочие дни, то следует использовать выражение

=ЧИСТРАБДНИ(В2;А2)

Более подробно о расчете рабочих дней читайте здесь.

2.     Разница в полных месяцах.

Обращаемся к ячейке Е3:

=РАЗНДАТ(A3;B3;»m»)

Обратите внимание, выражение вернет количество полных месяцев. В нашем примере 13 месяцев и 7 дней «округлены» ровно до 13. И последний день интервала, как мы уже говорили, эта функция не учитывает. В частности,

=РАЗНДАТ(“01.03.2020”;”31.03.2020”;»m»)

возвращает результат 0, так как последний день не включается в расчет. Вы это видите в ячейке E7. Это также будет важно при расчете стажа и отработанного времени. Учитывайте эту особенность и просто добавляйте 1 дополнительный день!

Формула может быть заменена альтернативным выражением:

= 12*(ГОД(B3)-ГОД(A3))- (МЕСЯЦ(A3)-МЕСЯЦ(B3))-(ДЕНЬ(B3)<ДЕНЬ(A3))

3.     Разница в полных годах.

Формула в ячейке F3 вернет количество полных лет:

=РАЗНДАТ(A3;B3;»Y»)

Опять же, считается только полный год, остальное отбрасывается.

Ну и альтернативный способ расчета —

= ЕСЛИ(ДАТА(ГОД(B3); МЕСЯЦ(A3);ДЕНЬ(A3))<= B3; ГОД(B3)-ГОД(A3);ГОД(B3)-ГОД(A3)-1)

4.     Разница в полных месяцах без учета лет.

Используем в I3 аргумент «YM».

=РАЗНДАТ(A3;B3;»YM»)

Второй параметр и конечная точка у нас – 10.04.2020 г. Поскольку годы мы здесь игнорируем, то год первого параметра также становится 2020. И мы теперь сравниваем 10.04.2020 и 2.03.2020г.

Результат – 1 полный месяц.

А вот если начало, предположим, будет 01.09.2015г.? Ведь ее нельзя модифицировать до 01.09.2020, поскольку тогда функция выдаст ошибку. И программа ее меняет на 01.09.2019. Результат здесь – 7 полных месяцев.

Я очень сомневаюсь, что кто-то будет проводить подобный расчет. Но он нам будет нужен, чтобы подсчитать количество дней, месяцев и лет между двумя точками. Об этом мы поговорим чуть ниже.

Ну и альтернативный расчет –

=ОСТАТ((12*(ГОД(B3)-ГОД(A3))- (МЕСЯЦ(A3)-МЕСЯЦ(B3))-(ДЕНЬ(B3)<ДЕНЬ(A3)))/12)

5.     Разница в днях без учета месяцев и лет.

Здесь немного сложнее.  Итак, в G3 пишем:

=РАЗНДАТ(A3;B3;»MD»)

Разберем, как получен результат в G3. Поскольку для нас не важны месяц и год, мы в начальной дате меняем их на текущие. То есть вместо 02.03.2019 рассматриваем 02.04.2020.  Сравниваем с 10.04.2020 и получаем 8 дней. Есть ли в таком результате смысл? Вряд ли. Поэтому и не рекомендуется применение этого аргумента как отдельного расчета.

Быть может, поэтому РАЗНДАТ и нет в списке официальных функций Excel.

6.     Разница в днях без учета лет.

То же самое, что и в предыдущем аргументе. Считаем количество суток между двумя точками без учета лет.

=РАЗНДАТ(A3;B3;»YD»)

Для начального момента — 02.03.2019 и конечного – 10.04.2020, разница в 39 дней выглядит явной ошибкой. Аналогично – между 01.09.2015 и 10.04.2020 совсем не 222 дня.

Следовательно, использование этого аргумента также не рекомендуем.

А зачем же всё это нужно? Ответ читайте в следующем разделе.

Как посчитать разницу в днях, месяцах и годах.

Чтобы подсчитать, сколько полных лет, месяцев и дней составляет разница «от» и «до» с использованием одной формулы, вы просто объединяете три функции в одно выражение:

=РАЗНДАТ(B2;B3;»Y»)&» лет, «&РАЗНДАТ(B2;B3;»YM»)&» месяцев, «&РАЗНДАТ(B2;B3;»MD»)&» дней»

Если вы не хотите отображать нулевые значения лет, месяцев и дней, то выражение можно изменить, добавив условие ЕСЛИ:

=ЕСЛИ(РАЗНДАТ(B2;B3;»Y»)>0;РАЗНДАТ(B2;B3;»Y»)&» лет «;»»)&ЕСЛИ(РАЗНДАТ(B2;B3;»YM»)>0;РАЗНДАТ(B2;B3;»YM»)&» месяцев «;»»)&ЕСЛИ(РАЗНДАТ(B2;B3;»MD»)>0;РАЗНДАТ(B2;B3;»MD»)&» дней»;»»)

Более подробно об условиях и функции ЕСЛИ читайте здесь.

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

=ЕСЛИ(РАЗНДАТ(B2;B3;»y»);РАЗНДАТ(B2;B3;»y»)&» «&ТЕКСТ(ОСТАТ(МАКС(ОСТАТ(РАЗНДАТ(B2;B3;»y»)-11;100);9);10);»[<1]год;[<4]года;лет»)&» «;)& ЕСЛИ(РАЗНДАТ(B2;B3;»ym»);РАЗНДАТ(B2;B3;»ym»)&» меся»&ТЕКСТ(ОСТАТ(РАЗНДАТ(B2;B3;»ym»)-1; 11);»[<1]ц;[<4]ца;цев»)&» «;)& ЕСЛИ(РАЗНДАТ(B2;B3;»md»)>0;РАЗНДАТ(B2;B3;»md»)&» д»&ТЕКСТ(ОСТАТ(МАКС(ОСТАТ(РАЗНДАТ(B2;B3;»md»)-11;100);9); 10);»[<1]ень;[<4]ня;ней»);)

Выглядит угрожающе, но зато работает.

Подсчет с помощью функции ДНИ

У пользователей Excel 2013 и 2016 есть еще один удивительно простой способ посчитать количество дней во временном интервале — функция ДНИ.

ДНИ (дата_окончания; дата_начала)

Обратите внимание, что по сравнению с РАЗНДАТ, функция ДНИ требует указания дат в обратном порядке.

Итак, наше выражение принимает вид:

=ДНИ(B3;A3)

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

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

Как рассчитать количество дней между сегодня ​​и другой датой.

Для этого расчета вы можете использовать любую из формул, описанных выше, и применить функцию СЕГОДНЯ (TODAY в английском варианте) в качестве одного из аргументов.

Чтобы рассчитать количество прошедших дней с определенного момента, то есть между прошлым и сегодняшним днем:

=СЕГОДНЯ() – Дата_в_прошлом

Для подсчета количества дней, оставшихся до наступления какого-то события, то есть между будущим временем и сегодняшним днем:

=Дата_в_будущем — СЕГОДНЯ()

В качестве примера, давайте посчитаем разницу между текущим моментом времени ​​и более ранним — в A4 (сегодня 18 марта 2020г.):

=СЕГОДНЯ()–A3

А теперь давайте выясним, сколько осталось от сегодняшнего дня (18.03.2020г.) до более позднего срока:

Узнайте, сколько дней между сегодняшним днем ​​и будущим.

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

Мастер даты и времени — простой способ создавать формулы разницы дат в Excel

Как показано в первой части этого руководства, функция РАЗНДАТ (DATEDIF) — довольно универсальная, подходящая для самых разных целей. Однако есть один существенный недостаток — она не документирована Microsoft, то есть вы не найдете РАЗНДАТ в списке функций и не увидите всплывающих подсказок для аргументов, когда начнете вводить формулу в ячейку. Чтобы иметь возможность использовать функцию РАЗНДАТ в своих таблицах, вы должны запомнить ее синтаксис и ввести все аргументы вручную, что может занять много времени и привести к ошибкам, особенно у начинающих.

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

  1. Выберите ячейку, в которую вы хотите вставить формулу.
  2. Перейдите на вкладку Ablebits Tools  и нажмите кнопку Мастер даты и времени (Date & Time Wizard).
  3. Появится диалоговое окно мастера даты и времени, где вы переходите на вкладку «Разница (Difference)» и вводите необходимые данные для расчёта:
    • Щелкните поле Дата 1  и выберите ячейку, содержащую первую дату.
    • Щелкните поле Дата 2 и укажите ячейку со второй датой.
    • Выберите желаемую единицу или комбинацию единиц времени из раскрывающегося меню «Разница в (Difference in)» . При этом программа позволяет предварительно просмотреть результат в поле и формулу в ячейке.

Инструмент может рассчитать разницу между двумя датами в 15 форматах:

  1. Годы
  2. Месяцы
  3. Недели
  4. Дни
  5. Годы + месяцы
  6. Годы + недели
  7. Годы + дни
  8. Месяцы + недели
  9. Месяцы + дни
  10. Недели + дни
  11. Годы + месяцы + недели
  12. Годы + месяцы + дни
  13. Годы + недели + дни
  14. Месяцы + недели + дни
  15. Годы + месяцы + недели + дни
  1. Если вас устраивает то, что вы увидели, нажмите кнопку «Вставить формулу (Insert Formula)», в противном случае попробуйте другие единицы измерения.

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

К сожалению, метки даты и времени вставляются по-английски. Однако, поскольку надстройка формирует для вас не текст, а формулу расчета (что вы и видите на скриншоте), то откорректировать формулу и пользоваться в дальнейшем ее русской версией не слишком сложно.

Да и вряд ли вы самостоятельно напишете такую сложную конструкцию  😊

Для наиболее удобного представления результатов доступно еще несколько дополнительных опций:

  • Исключить годы и / или месяцы из расчетов. (Годы и / или месяцы просто будут отброшены).
  • Показывать или не показывать текстовые метки времени, такие как дни, месяцы, недели и годы .
  • Показывать или не показывать нулевые единицы (0 месяцев, например) .
  • Возвращает результаты как отрицательные значения, если Дата 1 (дата начала) больше, чем Дата 2 (дата окончания). Думаю, вы сталкивались с ситуацией, когда попытка вычесть из более ранней даты более позднюю приводила к ошибке. Здесь вы просто получите отрицательную разность.

Более подробная информация доступна здесь.

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

Помимо скорости и простоты, Мастер даты и времени предоставляет еще несколько преимуществ:

  • В отличие от обычной формулы РАЗНДАТ, для формулы, созданной мастером, не важно, какая из двух дат меньше, а какая больше. Разница всегда рассчитывается идеально, даже если Дата 1 (дата начала) больше, чем Дата 2 (дата окончания).
  • Мастер поддерживает все возможные единицы измерения (дни, недели, месяцы и годы) и позволяет вам выбирать подходящий вариант из 11 различных комбинаций этих единиц.
  • Формулы, которые мастер создает для вас, являются обычными формулами Excel, поэтому вы можете редактировать, копировать или перемещать их как обычно. Вы также можете поделиться своими таблицами с другими людьми, и все формулы останутся на своих местах, даже если у кого-то нет Ultimate Suite в их Excel.

Если вам интересно протестировать этот калькулятор дат, а также открыть для себя еще 60 надстроек для упрощения работы и экономии времени в Excel, то можете загрузить пробную версию  Ultimate Suite. Если вам понравились инструменты и вы решили купить лицензию, не пропустите это специальное предложение для читателей нашего сайта.

Думаю, теперь операции с датами стали для вас намного проще и понятнее. Если вы не нашли ответ на интересующий вас вопрос, ознакомьтесь с дополнительными материалами, ссылки на которые вы видите чуть ниже. Или напишите нам в комментариях – постараемся ответить.

Также рекомендуем статьи о работе с датами:

Как перевести время в число В статье рассмотрены различные способы преобразования времени в десятичное число в Excel. Вы найдете множество формул для преобразования времени в часы, минуты или секунды. Поскольку Microsoft Excel использует числовую систему для работы с временем, вы можете…
Формат времени в Excel Вы узнаете об особенностях формата времени Excel, как записать его в часах, минутах или секундах, как перевести в число или текст, а также о том, как добавить время с помощью…
Как вывести месяц из даты На примерах мы покажем, как получить месяц из даты в таблицах Excel, преобразовать число в его название и наоборот, а также многое другое. Думаю, вы уже знаете, что дата в…
Как быстро вставить сегодняшнюю дату в Excel? Это руководство показывает различные способы ввода дат в Excel. Узнайте, как вставить сегодняшнюю дату и время в виде статической метки времени или динамических значений, как автоматически заполнять столбец или строку…
Количество рабочих дней между двумя датами в Excel Довольно распространенная задача: определить количество рабочих дней в период между двумя датами – это частный случай расчета числа дней, который мы уже рассматривали ранее. Тем не менее, в Excel для…

Введение Мы часто подсчитываем количество дней от и до свидания. Будь то вычисление того, когда кто-то должен вернуть книгу, когда нужно продлить подписку, сколько дней прошло с момента уведомления или когда приближается новое событие. В этом руководстве мы рассмотрим, как получить количество дней между датами в JavaScript. Объект даты в JavaScript. Дата в JavaScript — это количество тактов (или миллисекунд), прошедших с начала

Вступление

Мы часто оказываемся подсчета количества дней от и до настоящего
времени. Будь то вычисление того, когда кто-то должен вернуть книгу,
когда нужно продлить подписку, сколько дней прошло с момента уведомления
или когда приближается новое событие.

В этом руководстве мы рассмотрим, как получить количество дней между
датами в JavaScript
.

Объект Date в JavaScript

Date JavaScript — это Number тактов (или миллисекунд), прошедших с
начала эпохи UNIX (полночь 1 января 1970 г. по всемирному
координированному времени).

Несмотря на то, что, по сути, Date определяется в терминах UTC , все
его методы получают время и даты в местном часовом поясе:

 Date(); // Constructor for a new Date object 
 Date.now(); // Number of miiliseconds elaspsed since January 1, 1970 00:00:00 UTC 

Теперь, когда мы знакомы с синтаксисом, давайте посмотрим, как получить
количество дней между двумя датами с помощью Date в JavaScript.

Количество дней между датами

Чтобы получить количество дней между двумя датами, мы
getNumberOfDays() , которая принимает два объекта Date

 function getNumberOfDays(start, end) { 
 const date1 = new Date(start); 
 const date2 = new Date(end); 
 
 // One day in milliseconds 
 const oneDay = 1000 * 60 * 60 * 24; 
 
 // Calculating the time difference between two dates 
 const diffInTime = date2.getTime() - date1.getTime(); 
 
 // Calculating the no. of days between two dates 
 const diffInDays = Math.round(diffInTime / oneDay); 
 
 return diffInDays; 
 } 
 
 console.log(getNumberOfDays("2/1/2021", "3/1/2021")); 

Этот код приводит к:

 28 

Функция принимает две String , представляющие даты. Сначала мы создаем
Date из этих строк, после чего вычисляем количество миллисекунд в
день. Функция getTime() возвращает время в миллисекундах между
началом эпохи Unix и текущим временем. Итак, если мы вычтем дату start
end , мы получим количество миллисекунд между ними.

Затем мы можем превратить это количество миллисекунд в дни, разделив его
на количество миллисекунд в дне, в результате чего получится количество
дней между двумя датами.

Примечание. Этот подход включает start , но исключает дату end

Получите количество дней между датами в JavaScript с помощью js-joda

Разработчики, знакомые с Java, вероятно, будут знакомы с широко
используемой библиотекой Joda-Time ,
которая была чрезвычайно популярна до обновления Java 8 API даты /
времени.

Влияние Joda-Time вдохновило на создание
js-joda — универсальной библиотеки
даты / времени для JavaScript, основанной на календарной системе ISO.

Дополнительным преимуществом является то, что он чрезвычайно легкий и
очень быстрый, и по сравнению с другими библиотеками, такими как
Moment.js или date-utils , он предоставляет собственную реализацию
объектов даты / времени вместо того, чтобы полагаться на Date из
собственной реализации JavaScript. .

Давайте импортируем библиотеку через ванильный JavaScript:

 <script 
 src="https://cdnjs.cloudflare.com/ajax/libs/js-joda/1.11.0/js-joda.min.js" 
 </script> 

Или, если вы используете NPM:

 $ npm install js-joda 

Теперь мы можем использовать js-joda API. Давайте перепишем предыдущую
функцию, чтобы использовать LocalDate , любезно предоставленный
js-joda :

 const JSJoda = require('js-joda'); 
 const LocalDate = JSJoda.LocalDate; 
 
 function getNumberOfDays(start, end) { 
 const start_date = new LocalDate.parse(start); 
 const end_date = new LocalDate.parse(end); 
 
 return JSJoda.ChronoUnit.DAYS.between(start_date, end_date); 
 } 
 
 console.log(getNumberOfDays("2021-02-01", "2021-03-01")); 

Это также приводит к:

 28 

Примечание: этот подход также исключает end_date .

Заключение

В этом руководстве мы рассмотрели, как получить количество дней между
датами в JavaScript. Помимо встроенного подхода, основанного на Date ,
мы также исследовали js-joda , которая была вдохновлена библиотекой
Joda-Time
, управляемой Java, для гораздо более лаконичного подхода к
решению этой проблемы.

Понравилась статья? Поделить с друзьями:
  • Дигидрокверцетин плюс инструкция по применению взрослым от чего помогает таблетки
  • Фунгицид курзат инструкция по применению по клубнике
  • Хонда cbf 600 мануал
  • Клотримазол мазь кошкам инструкция по применению
  • Анализ руководства помощником воспитателя