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

Как посчитать количество дней в эксель между двумя датами, рабочие дни в excel

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

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

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

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

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

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

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

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

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

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

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

Функция РАНГ

Возвращает позицию элемента в списке по его значению, относительно значений других элементов. Результатом функции будет не индекс (фактическое расположение) элемента, а число, указывающее, какую позицию занимал бы элемент, если список был отсортирован либо по возрастанию либо по убыванию.По сути, функция РАНГ выполняет обратное действие функциям НАИБОЛЬШИЙ и НАИМЕНЬШИЙ, т.к. первая находит ранг по значению, а последние находят значение по рангу.Текстовые и логические значения игнорируются.

Синтаксис: =РАНГ(число; ссылка; ), где

  • число – обязательный аргумент. Числовое значение элемента, позицию которого необходимо найти.
  • ссылка – обязательный аргумент, являющийся ссылкой на диапазон со списком элементов, содержащих числовые значения.
  • порядок – необязательный аргумент. Логическое значение, отвечающее за тип сортировки:
    • ЛОЖЬ – значение по умолчанию. Функция проверяет значения по убыванию.
    • ИСТИНА – функция проверяет значения по возрастанию.

Если в списке отсутствует элемент с указанным значением, то функцией возвращается ошибка #Н/Д.Если два элемента имеют одинаковое значение, то возвращается ранг первого обнаруженного.Функция РАНГ присутствует в версиях Excel, начиная с 2010, только для совместимости с более ранними версиями. Вместо нее внедрены новые функции, обладающие тем же синтаксисом:

  • РАНГ.РВ – полная идентичность функции РАНГ. Добавленное окончание «.РВ», сообщает о том, что, в случае обнаружения элементов с равными значениями, возвращается высший ранг, т.е. самого первого обнаруженного;
  • РАНГ.СР – окончание «.СР», сообщает о том, что, в случае обнаружения элементов с равными значениями, возвращается их средний ранг.

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

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

Как рассчитать и отобразить отрицательное время в Excel

При расчете разницы во времени в Excel вы иногда можете получить результат в виде ошибки ######, если вдруг она представляет собой отрицательное число. Это происходит, если время начала больше, чем время окончания события. Такое часто случается, если рассчитывают продолжительность каких-то событий без учета даты. Получается, что время окончания меньше, чем время начала, поскольку это просто время следующего дня. К примеру, мы начинаем работу в 17 часов и заканчиваем на следующий день в 10 часов.

Но есть ли способ правильно отображать отрицательное время в Excel? Конечно, способ есть, и даже не один.

Способ 1. Измените систему дат Excel на систему дат 1904 года.

Самый быстрый и простой способ нормально отображать отрицательное время (со знаком минус) — это перейти на систему дат 1904 года. Для этого нажмите « Файл» > «Параметры» > «Дополнительно », прокрутите вниз до раздела « При расчете этой книги» и поставьте галочку в поле «Использовать систему дат 1904».

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

Как видите, время начала больше, чем время окончания, и результат получен со знаком «минус».

Способ 2. Рассчитать отрицательное время в Excel с помощью формул

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

=ЕСЛИ(A2-B2>0; A2-B2; «-» & ТЕКСТ(ABS(A2-B2);»ч:мм»))

=ЕСЛИ(A2-B2>0; A2-B2; ТЕКСТ(ABS(A2-B2);»-ч:мм»))

Они обе проверяют, является ли отрицательной разница во времени (A2-B2). Если она меньше нуля, первая формула вычисляет абсолютное значение (без учёта знака) и объединяет этот результат со знаком «минус». Вторая формула делает точно такой же расчет, но использует отрицательный формат времени «-ч::мм «.

Примечание. Имейте в виду, что в отличие от первого метода, который обрабатывает отрицательное время как отрицательное число, результатом функции ТЕКСТ всегда является текстовая строка, которую нельзя использовать в математических вычислениях.

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

На случай если время окончания меньше, чем время начала, мы можем проверить это при помощи функции ЕСЛИ.

=ЕСЛИ(B2<A2;B2+1;B2)-A2

Если разница во времени отрицательная, ко времени окончания добавляем 1 день (24 часа).  В результате получим правильную разницу во времени, но без знака «минус».

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

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

Чтобы добавить менее 60 секунд к заданному времени, вы можете использовать функцию ВРЕМЯ:

= Время начала + ВРЕМЯ(0; 0; N секунд )

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

= Время начала + ( N секунд / 86400)

86400 – это количество секунд в сутках.

Чтобы вычесть секунды, используйте те же формулы, только со знаком минус (-) вместо плюса (+).

Это может выглядеть примерно так:

Чтобы добавить 50 секунд к A2:         =A2 + ВРЕМЯ(0;0;50)

Чтобы добавить 1500 секунд к A2:      =A2 + (1500/86400)

Чтобы вычесть 25 секунд из A2:          =A2 — ВРЕМЯ(0;0;25)

Чтобы вычесть 2500 секунд из A2:      =A2 — (2500/86400)

Примечание

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

Как посчитать долю от года в Microsoft Excel

Если вам известен некий период, и нужно знать, какую часть календарного года он занимает, используйте функцию ДОЛЯГОДА(Начальная_дата ; Конечная_дата; Базис) . Как видите, у функции 3 агрумента :

  1. Начальная дата – дата старта изучаемого периода – обязательный аргумент
  2. Конечная дата – дата окончания период – обязательный аргумент
  3. Базис – базовые значения длительности года. При введении параметра программа выведет подсказку по выбору этого аргумента.

Например, проект начался 10.08.2015 и закончился 08.05.2016. Чтобы определить долю периода от календарного года, запишем формулу: =ДОЛЯГОДА(«10.08.2015″;»08.05.2016»;1) . Получим результат 0,7432. Отформатируем его в процентном формате и получим 74% года.

Пересечение интервалов дат

Одна из типичных задач для пользователя Microsoft Excel. Имеем два диапазона дат вида «начало-конец». Задача состоит в том, чтобы определить пересекаются ли эти диапазоны и, если да, то на сколько дней.

Пересекаются или нет?

Начнем с решения вопроса о том, есть ли пересечение интервалов в принципе? Предположим, что у нас есть таблица рабочих смен сотрудников вот такого вида:

Хорошо видно, что рабочие смены Ярослава и Елены пересекаются, но как это вычислить, не прибегая к построению календарного графика и визуальному контролю? Нам поможет функция СУММПРОИЗВ (SUMPRODUCT) .

Вставим в нашу таблицу еще один столбец с формулой, которая выдает логическое значение ИСТИНА в случае пересечения дат:

На сколько дней пересечение?

Если принципиально не просто понимать — пересекаются наши интервалы или нет, а точно знать сколько именно дней попадает в пересечение, то задача усложняется. Рассуждая логически, необходимо «прокачать» аж 3 разных ситуации в одной формуле:

  • интервалы не пересекаются
  • один из интервалов полностью поглощает другой
  • интервалы пересекаются частично

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

На самом деле все можно сделать красиво с помощью функции МЕДИАНА (MEDIAN) из категории Статистические.

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

Компактно и изящно, не правда ли?

Функция интервал в excel

Pers.narod.ru. Обучение. Excel: выбор номера интервала, в который попадает значение и подсчёт количества значений в интервале

Довольно часто в Excel требуется определить, в какой из нескольких числовых интервалов попадает некоторое числовое значение. Это бывает нужно как в численных методах, так и в финансовых или естественнонаучных расчётах. Давайте решим эту задачу корректно, начав с простейшего примера. В ячейках A1:A4 набраны 4 числа, показывающие границы интервалов, например, 1 ; 2 ; 3 ; 4 , разумеется, числа могут быть любыми другими, но они должны быть упорядочены по возрастанию, иначе потом не будет работать поиск. Сортировка в Excel делается элементарно (меню Данные , пункт Сортировка ), так что выполнения этого условия нетрудно добиться.

В ячейке B1 набрано число, которое мы будем проверять на попадание в интервалы, например, значение 1,5 (полтора). Элементарно определить «карман», в который попадает числовое значение, можно с помощью стандартной функции ПОИСКПОЗ :

Третий параметр функции здесь равен единице, это означает, что ПОИСКПОЗ находит наибольшее значение, которое меньше либо равно, чем искомое значение из ячейки B1 , то есть, мы берём левые границы интервалов. В случае, если нужны правые границы, следует здесь и далее упорядочить данные по убыванию и везде ставить в ПОИСКПОЗ третий параметр, равный -1 .

У кода минимум два недостатка — если величина из B1 меньше границы самого левого интервала, выведется системное сообщение #Н/Д («не найдено»), кроме того, если искомая величина больше последней из границ интервала, Excel решит, что величина всё равно попадает в последний интервал, что неприемлемо.

Избавляемся от первого недостатка (теперь Excel пишет «Неверная точка» для слишком маленьких чисел):

Избавляемся от второго недостатка, предусмотрев случай, когда ПОИСКПОЗ дал последний интервал, но при этом значение в ячейке B1 больше, чем значение в последней ячейке интервала. В этом случае продублируется сообщение «Неверная точка»:

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

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

Это работает вполне приемлемо.

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

Для того, чтобы определить количество числовых значений из диапазона A1:A10 , находящихся, например, в интервале от 2,5 до 6,15 включительно, можно использовать любую из семи представленных ниже формул:

Последние четыре формулы являются формулами массива, их ввод необходимо завершать комбинацией клавиш Ctrl+Shift+Enter .

Другие вычисления даты и времени

Как было посчитано выше, функция РАЗДАТ.В.ДВ вычисляет разницу между датой начала и датой окончания. Однако вместо ввода определенных дат в формуле можно использовать функцию СЕГОДНЯ(). При использовании функции СЕГОДНЯ() Excel для даты используется текущая дата вашего компьютера. Имейте в виду, что эта переменная будет меняться при повторном открыть файле в будущем.

Обратите внимание, что на момент написания статьи день был 6 октября 2016 г. Используйте NETWORKDAYS

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

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

Прежде чем начать: Решите, нужно ли исключить даты праздников. В этом случае введите список дат праздников в отдельной области или на отдельном листе. Поместите каждую праздниковую дату в свою ячейку. Затем выберем эти ячейки и выберем формулы > определить имя. Привяжем диапазон MyHolidaysи нажмите кнопку ОК. Затем создайте формулу с помощью действий ниже.

2. В другой ячейке введите формулу такого вида:

Введите формулу, как в примере выше. Число 1 в формуле устанавливает субботы и воскресенье в качестве выходных и исключает их из общего числа.

Примечание. Excel 2007 не имеет networkDAYS. Функция INTL. Однако в нем есть NETWORKDAYS. В этом примере в Excel 2007 г. будет выглядеть так: =NETWORKDAYS(D53;E53). Вы не указываете 1, так как в networkDAYS предполагается, что выходные — в субботу и воскресенье.

3. При необходимости измените 1.

Если суббота и воскресенье не являются выходными, измените число 1 в списке IntelliSense. Например, 2 дня по понедельникам и понедельникам являются выходными.

Если вы используете Excel 2007, пропустите этот шаг. Excel 2007 г. функция NETWORKDAYS всегда предполагает, что выходные дни — в субботу и воскресенье.

4. Введите название диапазона праздников.

Если вы создали имя диапазона праздников в разделе «Начало работы» выше, введите его в конце так: Если у вас нет праздников, оставьте запятую и запятую MyHolidays. Если вы используете Excel 2007, пример будет такой: =ДНЕЙМН(D53;E53;MyHolidays).

Совет: Если вы не хотите ссылаться на название диапазона праздников, можно также ввести диапазон, например D35:E:39. Можно также ввести в формулу каждый праздник. Например, если ваши праздники были 1 и 2 января 2016 г., введите их так: =СЕТЕВЫЕДНИ. INTL(D53;E53;1;). В Excel 2007 г. она будет выглядеть так: =ДНЕЙМН(D53;E53;)

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

1. Введите время начала и окончания.

В этом примере время начала находится в ячейке D80, а время окончания — в ячейке E80. Введите часы, минуты и пробелы до am или PM.

2. Задать формат ч:мм.AM/PM.

Выберите обе даты и нажмите CTRL+1 (или + 1 на Компьютере Mac). Выберите настраиваемый >ч:мм/PM, если он еще не установлен.

4. За установите формат ч:мм.

Нажмите клавиши CTRL+1 (или +1 на Mac). Выберите Настраиваемые > ч:мм, чтобы исключить из результатов am и PM.

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

1. Введите две полные даты и время.

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

2. Задать формат 14.03.2012, 13:30.

Выберем обе ячейки и нажмите CTRL+1 (или + 1 на компьютере Mac). Затем выберите Дата >14.03.2012, 13:30. Это не та дата, которая будет заданной вами, а только пример того, как будет выглядеть формат

Обратите внимание, что в версиях, предшествующих Excel 2016, этот формат может иметь другой пример даты, например14.03.2011 13:30

4. За установите формат :мм.

Нажмите клавиши CTRL+1 (или +1 на Mac). Выберите пункт (все форматы). В поле Тип введите :мм.

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

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

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

21

годы между датами

годы месяцы сутки часы минуты
между двумя датами

Число минут и секунд в дате не может превышать 60, Вы ввели… будут изменены еще и другие параметры даты
Количество часов в дате не может превышать 23, Вы ввели: ..

— будут изменены еще и другие параметры даты
Внимание! Праздники России учитываются полностью, только если обе даты относятся к 2018 году
Число дней в месяце \n не может быть больше 31

О-о! Введенное Вами число относится ко временам, которые трудно себе представить…

Извините!

Перед Вами простой онлайн расчетчик, осознающий свои, увы, скромные возможности, а не астрономическая программа!

Пожалуйста, введите другое число.

На основе этого небольшого табло создан .

Сейчас расчетная таблица настроена на подсчет дней до начала лета.

Чтобы расчитать, сколько дней прошло или пройдет между интересующими Вас датами, просто введите их в соответствующие поля таблицы. Интервал времени можно изменять точно так же как и даты, при этом отсчет будет вестись от «Даты 1», а изменяться будет «Дата 2».
В результатах расчета так же отображаются неизменяемые информационные величины и показатели — это дни недели (темно-серый цвет — будни, оранжево-красный — выходные) и, как итоговое резюме, интервал между датами, выраженный через годы, месяцы, дни, часы и минуты.

Если на табло Вы видите самый судьбоопределяющий для нашей страны период истории — дни между датами Великой Отечественной войны, то, значит, в Вашем браузере отключен Jawa Script и для проведения расчетов его необходимо включить.

*
В пределах 2019
года расчет рабочих дней
ведется с учетом праздников России
и утвержденной правительством РФ схемы переноса выходных дней. При больших промежутках времени
между датами, расчеты количества рабочих дней ведутся в предположении пятидневной рабочей недели, праздники не учитываются
.

Sergey Ov

(Seosnews9
)

Справка:
Достоверно известно, что в конце первого тысячелетия в Древней Руси отсчет времени велся по Юлианскому календарю, правда новый год справлялся 1 марта, отсчет времени по такому календарю называют Мартовским стилем. Разница между равными датами современного и древнего календря на 1 марта 1000 года составляла 59+6=65 дней (6 дней разница между показаниями юлианского и григорианского календаря, равными датами считаются даты с равными числами и равными номерами месяцев от начала года).

В 1492 году постановлением Московского Собора Русской православной церкви был принят календарь, согласно которому новый год (Новолетье) начинался 1 сентября (Сентябрьский стиль

), разница с современным календарем составляла 9-122=-113 дней.
Спустя два столетия в канун круглой календарной даты Петр Первый вводит календарь ведущий исчисление от Рождества Христова. Новый год в России встречают 1 января с начиная 1700 года (правда, на самом деле, по современному календарю этот новый год наступил 11 января 1700 года). Страна перешла из 7208 года в 1700! Так что, в новый тогда 18 век, наступивший в 1701 году Россия вошла почти в ногу с Европой. Почти в ногу, потому что летоисчисление, как и прежде велось по юлианскому календарю (изменилась только датировка, теперь она называется старым стилем
)
, в то время как Европа уже частично перешла на григорианский календарь.
Современный григорианский календарь на территории России был принят только в 21 веке. 26 января 1918 года: Владимир Ильич Ленин подписал декрет Совнаркома о переходе на новое исчисление времени, при этом датировка сдвинулась на 13 дней. Последний государственный документ датированный по старому стилю вышел 31 января 1918 года — на следующий день наступило 14 февраля!
Так что вопрос:
«Сколько дней между двумя датами?» в историческом смысле всегда требует уточнения…

Как работает функция СЧЕТЕСЛИМН?

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

Синтаксис функции выглядит следующим образом:

СЧЕТЕСЛИМН(диапазон1;условие1; …)

  • диапазон1 (обязательный) — определяет первую область, к которой должно применяться первое условие ( условие1).
  • условие1 (обязательное) — устанавливает требование к отбору в виде числа , ссылки на ячейку , текстовой строки , выражения или другой функции Excel. Определяет, какие ячейки должны учитываться.
  • … (необязательные) — это дополнительные области и связанные с ними критерии. Вы можете указать до 127 таких пар.

На самом деле, вам не нужно помнить этот синтаксис наизусть. Microsoft Excel отобразит аргументы функции, как только вы начнете печатать; аргумент, который вы вводите в данный момент, будет выделен жирным шрифтом.

Что нужно запомнить?

  1. Диапазонов поиска может быть от 1 до 127. Для каждого из них указывается свое условие. Учитываются только те случаи, которые отвечают всем предъявленным требованиям.
  2. Каждый дополнительный диапазон должен иметь одинаковое число строк и столбцов с первым. Иначе получите ошибку #ЗНАЧ!
  3. Допускаются как смежные, так и несмежные диапазоны.
  4. Если в аргументе указана ссылка на пустую ячейку , функция обрабатывает его как нулевое значение (0).
  5. В критериях можно использовать символы подстановки — звездочка (*) и знак вопроса (?). Далее мы расскажем об этом подробнее.

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

Вы также можете вычислить возраст или время службы другого человека. Результат может выглядеть так: «2 года, 4 месяца, 5 дней».

1. Чтобы найти общее количество лет, используйте dateDIF.

В этом примере дата начала находится в ячейке D17, а даты окончания — в ячейке E17. В формуле «y» возвращает количество полных лет между двумя днями.

2. Чтобы найти месяцы, снова используйте DATEDIF с «м».

В другой ячейке используйте формулу РАЗНОМЕР с параметром «м». «м» возвращает количество оставшихся месяцев за последний полный год.

3. Используйте другую формулу для поиска дней.

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

Предупреждение: Не рекомендуется использовать аргумент «мд» РАЗДАТ.

4. Необязательно: объединение трех формул в одну.

Все три вычисления можно поместить в одну ячейку, как в этом примере. Используйте амперанд, кавычка и текст. Это длинная формула, но по крайней мере она все в одной формуле. Совет. Нажмите ALT+ВВОД, чтобы ввести разрывы строк в формулу. Это упрощает чтение. Кроме того, если вы не видите всю формулу, нажмите CTRL+SHIFT+U.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

1

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Сколько лет, месяцев, дней прошло с конкретной даты в EXCEL

Для вычислений длительностей интервалов дат удобней всего использовать недокументированную функцию РАЗНДАТ() . Этой функции нет в справке EXCEL2007 и в Мастере функций ( SHIFT+F3 ), но она работает ( с некоторыми огрехами ).

Если в ячейке В2 содержится сегодняшняя дата, а в А2 –дата начала отсчета (например, день рождения), то формула: =РАЗНДАТ(A2;B2;»y»)&» г. «& РАЗНДАТ(A2;B2;»ym»)&» мес. «& РАЗНДАТ(A2;B2;»md»)&» дн.»

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

Как показано в статье о функции РАЗНДАТ() , лучше избегать применения этой функции с аргументом «md», т.к. она может выдать неправильный результат. Поэтому часть формулы РАЗНДАТ(A2;B2;»md») лучше заменить ее эквивалентом: =ЕСЛИ(ДЕНЬ(A2)>ДЕНЬ(B2);ДЕНЬ(КОНМЕСЯЦА(ДАТАМЕС(B2;-1);0))-ДЕНЬ(A2)+ДЕНЬ(B2);ДЕНЬ(B2)-ДЕНЬ(A2))

Итоговая формула приведена в файле примера:

Уточним склонения: год/ лет, месяца/ месяцев, дня/ дней

В случае, если получается целое количество лет, то формула вернет результат в виде 37 г. 0 мес. 0 дн. , что не очень красиво.

Воспользовавшись идеями, подсказанными нашим пользователем МСН, также просклоняем месяцев/ месяца и дней/ дня

=ЕСЛИ(РАЗНДАТ(A2;B2;»y»);РАЗНДАТ(A2;B2;»y»)&» «&ТЕКСТ(ОСТАТ(МАКС(ОСТАТ(РАЗНДАТ(A2;B2;»y»)-11;100);9);10);»[ РАЗНДАТ() с параметрами md и ym подсчитает, что разница составляет 1 месяц и 14 дней.

Алгоритм расчета этой функции следующий: сначала функция последовательно прибавляет месяцы к дате начала, до тех пор пока получившаяся дата меньше конечной. Т.е. к 30.01.2015 функция прибавит 1 месяц и получит 30.02.2015, но такой даты не существует, в феврале 2015г. 28 дней! Ничего страшного, функция запоминает, что нужно отнять 2 дня, чтобы получить правильную дату! Затем идет подсчет оставшихся дней в марте — их 16. Затем, функция к 16 дням прибавляет -2, и получаем 14 дней. Естественно, такой расчет не верен.

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

Обратная задача

Теперь решим обратную задачу: задав количество количество лет, месяцев и дней, рассчитаем конечную дату.

Конечную дату будем рассчитывать двумя способами: через функцию ДАТА() и ДАТАМЕС()

Вычислив конечную дату, затем вычислим с помощью РАЗНДАТ() разницу между ними (должна совпасть с заданной). И наконец, из конечной даты получим начальную, вычтя заданное количество лет, месяцев и дней с использованием формул:

Если для начальной даты 15.01.2015 (строка 8 в файле примера, лист Обратная задача ) все вычисления понятны и одинаковы (добавили 1 год, 2 месяца и 5 дней), получили 20.03.2015, разница составила теже 1 год, 2 месяца и 5 дней, расчетная начальная дата совпала с заданной начальной датой, то для 29.01.2015 все не так гладко (см. строку 9). Для наглядности прибавим 1 месяц.

Как мы уже знаем из статьи Функция ДАТАМЕС() в MS EXCEL функции ДАТА() и ДАТАМЕС() не эквивалентны при прибавлении месяцев:

При прибавлении месяцев между ДАТАМЕС() и ДАТА() существует разница. Прибавим к 29.01.2015 один месяц:

  • =ДАТАМЕС(«29.01.2015»;1) вернет 28.02.2015, т.к. 30 февраля не существует, то функция вернет последний день месяца, т.е. 28.02.2014 («лишние» 2 дня будут отброшены);
  • =ДАТА(ГОД(«29.01.2015»);МЕСЯЦ(«29.01.2015»)+1;ДЕНЬ(«29.01.2015»)) вернет 02.03.2015: «лишние» 2 дня (29 и 30 февраля) будут прибавлены к дате.

Расчет с помощью ДАТАМЕС() кажется логичней, хотя функция РАЗНДАТ() с этим не согласна: разницу, совпадающей с заданной она возвращает только для варианта с функцией ДАТА() .

Расчетная начальная дата в обоих случаях не совпадает с заданной начальной датой: получим 01.02.2015 и 28.01.2015 вместо 29.01.2015.

Как быть? Вероятно, решение будет зависеть от конкретной задачи, стоящей перед пользователем. Необходимо помнить, что нужно использовать ДАТАМЕС() при добавлении (вычитании) месяцев, а РАЗНДАТ() — это недокументированная и, соответственно, не гарантирующая правильность расчетов функция. Об этой функции написана статья Функция РАЗНДАТ() — Вычисление разности двух дат в днях, месяцах, годах в MS EXCEL , в которой дается формула, учитывающая вышеуказанную ситуацию (см. раздел «Еще раз о кривизне РАЗНДАТ() «).

Вычисление возраста в годах, месяцах и днях

Можно также вычислить возраст или срок службы. Результат при этом будет иметь следующий вид: «2 года, 4 месяца, 5 дней».

1. Используйте функцию РАЗНДАТ для вычисления суммарного количества лет.

В этом примере начальная дата находится в ячейке D17, а конечная — в ячейке E17. Параметр «y»
в формуле возвращает количество полных лет между двумя датами.

2. Используйте функцию РАЗНДАТ с параметром «ym» для вычисления количества месяцев.

В еще одну ячейку поместите формулу РАЗНДАТ с параметром «ym»
. Параметр «ym» возвращает количество месяцев, остающихся после последнего полного года.

3. Используйте другую формулу, чтобы найти дни.

Теперь нужно определить количество оставшихся дней. Мы сделаем это, написав другую формулу, чем приведенная выше. Эта формула вычитает первый день конечного месяца (01.05.2016) из исходной даты окончания в ячейке E17 (06.05.2016). Ниже описано, как это делается. Сначала, функция ДАТА создает дату, 01.05.2016. Она делает это на основе года и месяца в ячейке E17 (число 1
означает первый день месяца). Функция ДАТА отображает 01.05.2016. Затем мы вычитаем эту дату из исходной конечной даты в ячейке E17, т. е. 06.05.2016. «06.05.2016» минус «01.05.2016» равняется 5 дням.

4. Необязательно: объедините три формулы в одну.

Все три вычисления можно поместить в одну ячейку, как в этом примере. Можно использовать амперсанды, кавычки и текст. Такую формулу дольше вводить, но зато здесь все вычисления в одном месте. Совет.
Чтобы добавить в формулу разрыв строки, нажмите клавиши ALT+ВВОД. Это упростит чтение. Если не видно всю формулу целиком, нажмите клавиши CTRL+SHIFT+U.

Понравилась статья? Поделиться с друзьями:
Самоучитель Брин Гвелл
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: