Skip to content
В статье рассматривается, как в Excel посчитать время. Вы найдете несколько полезных формул чтобы посчитать сумму времени, разницу во времени или сколько времени прошло и многое другое.
Ранее мы внимательно рассмотрели особенности формата времени Excel и возможности основных функций времени. Сегодня мы углубимся в вычисления времени в Excel, и вы узнаете еще несколько формул для эффективного управления временем в ваших таблицах.
Как посчитать разницу во времени в Excel (прошедшее время)
Для начала давайте посмотрим, как можно быстро посчитать в Excel сколько прошло времени, т.е. найти разницу между временем начала и временем окончания. И, как это часто бывает, существует несколько способов для расчета времени. Какую из них выбрать, зависит от вашего набора данных и того, какого именно результата вы пытаетесь достичь. Итак, давайте посмотрим несколько вариантов.
Вычесть одно время из другого
Как вы, наверное, знаете, время в Excel — это обычные десятичные числа, отформатированные так, чтобы они выглядели как время. И поскольку это числа, вы можете складывать и вычитать время так же, как и любые другие числовые значения.
Самая простая и очевидная формула Excel чтобы посчитать время от одного момента до другого:
= Время окончания — Время начала
В зависимости от ваших данных, формула разницы во времени может принимать различные формы, например:
Формула | Пояснение |
=A2-B2 | Вычисляет разницу между временами в ячейках A2 и B2. |
=ВРЕМЗНАЧ(«21:30») — ВРЕМЗНАЧ («8:40») | Вычисляет разницу между указанными моментами времени, которые записаны как текст. |
=ВРЕМЯ(ЧАС(A2); МИНУТЫ(A2); СЕКУНДЫ(A2)) — ВРЕМЯ (ЧАС (B2); МИНУТЫ (B2); СЕКУНДЫ (B2)) | Вычисляет разницу во времени между значениями в ячейках A2 и B2, игнорируя разницу в датах, когда ячейки содержат значения даты и времени. |
Помня, что во внутренней системе Excel время представлено дробной частью десятичного числа, вы, скорее всего, получите результаты, подобные этому скриншоту:
В зависимости оп применяемого форматирования, в столбце D вы можете увидеть десятичные дроби (если установлен формат Общий). Чтобы сделать результаты более информативными, вы можете настроить отображаемый формат времени с помощью одного из следующих шаблонов:
Формат | Объяснение |
ч | Прошедшее время отображается только в часах, например: 4. |
ч:мм | Прошедшие часы и минуты отображаются в формате 4:50. |
ч:мм:сс | Прошедшие часы, минуты и секунды отображаются в формате 4:50:15. |
Чтобы применить пользовательский формат времени, используйте комбинацию клавиш Ctrl + 1
, чтобы открыть диалоговое окно «Формат ячеек», выберите «Пользовательский» и введите шаблон формата в поле «Тип». Подробные инструкции вы можете найти в статье Создание пользовательского формата времени в Excel .
А теперь давайте разберем это на простых примерах. Если время начала находится в столбце B, а время окончания — в столбце A, вы можете использовать эту простую формулу:
=$A2-$B2
Прошедшее время отображается по-разному в зависимости от использованного формата времени, как видно на этом скриншоте:
Примечание. Если время отображается в виде решеток (#####), то либо ячейка с формулой недостаточно широка, чтобы вместить полученный результат, либо итогом ваших расчетов времени является отрицательное число. Отрицательное время в Экселе недопустимо, но это ограничение можно обойти, о чем мы поговорим далее.
Вычисление разницы во времени с помощью функции ТЕКСТ
Еще один простой метод расчета продолжительности между двумя временами в Excel — применение функции ТЕКСТ:
- Рассчитать часы между двумя временами: =ТЕКСТ(A2-B2; «ч»)
- Рассчитать часы и минуты: =ТЕКСТ(A2-B2;»ч:мм»)
- Посчитать часы, минуты и секунды: =ТЕКСТ(A2-B2;»ч:мм:сс»)
Как видно на скриншоте ниже, вы сразу получаете время в нужном вам формате. Специально устанавливать пользовательский формат ячейки не нужно.
Примечание:
- Значение, возвращаемое функцией ТЕКСТ, всегда является текстом. Обратите внимание на выравнивание по левому краю содержимого столбцов C:E на скриншоте выше. В некоторых случаях это может быть существенным ограничением, поскольку вы не сможете использовать полученное «текстовое время» в других вычислениях.
- Если результатом является отрицательное число, ТЕКСТ возвращает ошибку #ЗНАЧ!.
Как сосчитать часы, минуты или секунды
Чтобы получить разницу во времени только в какой-то одной единице времени (только в часах, минутах или секундах), вы можете выполнить следующие вычисления.
Как рассчитать количество часов.
Чтобы представить разницу в часах между двумя моментами времени в виде десятичного числа, используйте следующую формулу:
=( Время окончания — Время начала ) * 24
Если начальное время записано в A2, а время окончания – в B2, вы можете использовать простое выражение B2-A2, чтобы вычислить разницу между ними, а затем умножить результат на 24. Это даст количество часов:
=(B2-A2)* 24
Чтобы получить количество полных часов, используйте функцию ЦЕЛОЕ, чтобы округлить результат до ближайшего целого числа:
=ЦЕЛОЕ((B2-A2) * 24)
Пример расчета разницы во времени только в одной единице измерения вы видите на скриншоте ниже.
Считаем сколько минут в интервале времени.
Чтобы вычислить количество минут между двумя метками времени, умножьте разницу между ними на 1440, что соответствует количеству минут в одном дне (24 часа * 60 минут = 1440).
=( Время окончания — Время начала ) * 1440
Как показано на скриншоте выше, формула может возвращать как положительные, так и отрицательные значения. Отрицательные возникают, когда время окончания меньше времени начала, как в строке 5:
=(B2-A2)*1440
Как сосчитать количество секунд.
Чтобы посчитать разницу в секундах между двумя моментами времени, вы умножаете разницу во времени на 86400, что соответствует числу секунд в одном дне (24 часа * 60 минут * 60 секунд = 86400).
=( Время окончания — Время начала ) * 86400
В нашем примере расчет выглядит следующим образом:
=(B2-A2)* 86400
Примечание. Чтобы результаты отображались правильно, к ячейкам с вашей формулой разницы во времени следует применить общий либо числовой формат.
Как посчитать разницу в каждой единице времени.
Чтобы найти разность между двумя точками времени и выразить ее только в одной определенной единице времени, игнорируя остальные, используйте одну из следующих функций.
- Разница в часах без учета минут и секунд:
=ЧАС(B2-A2)
- Разница в минутах без учета часов и секунд:
=МИНУТЫ(B2-A2)
- Разница в секундах без учета часов и минут:
=СЕКУНДЫ(B2-A2)
При использовании функций Excel ЧАС, МИНУТЫ и СЕКУНДЫ помните, что результат не может превышать 24 для часов, и 60 – для минут и секунд.
В данном случае не играет роли, сколько дней прошло с даты начала до даты окончания. Учитывается только дробная часть числа, то есть время.
Примечание. Однако,если в ячейку вы записали не просто время, а дату и время, и при этом дата окончания окажется меньше даты начала (т. е. результатом будет отрицательное число), то вы увидите ошибку #ЧИСЛО!.
Как перевести секунды в часы, минуты и секунды
Часто случается, что длительность какого-то события представлена в каких-то одних единицах времени. К примеру, различные приборы зачастую возвращают измеренное ими время в секундах. И это число нам нужно перевести в привычный формат времени – в часы, минуты и секунды, а при необходимости – еще и в дни.
Давайте рассмотрим небольшой пример.
Предположим, зафиксирована продолжительность события 284752 секунд. Переведем число секунд в дни, часы, минуты и секунды.
Вот как это будет:
Дни:
=ЦЕЛОЕ(A2/(60*60*24))
Часы:
=ЦЕЛОЕ(A2/(60*60)) — ЦЕЛОЕ(A2/(60*60*24))*24
Минуты:
=ЦЕЛОЕ(A2/60) — ЦЕЛОЕ(A2/(60*60))*60
Секунды – это просто две последние цифры:
=—ПРАВСИМВ(A2;2)
Если нужно рассчитать время только в часах, минутах и секундах, то изменим формулу подсчета часов:
=ЦЕЛОЕ(A2/(60*60))
Конечно, здесь результат может быть больше 24.
Минуты и секунды подсчитываем, как и прежде.
Еще один вариант перевода секунд в дни, часы, минуты и секунды вы можете посмотреть на скриншоте ниже.
Расчет времени с момента начала до настоящего момента
Чтобы рассчитать, сколько времени прошло с какой-то даты до настоящего момента, вы просто используете функцию ТДАТА, чтобы вернуть сегодняшнюю дату и текущее время, а затем вычесть из них дату и время начала.
Предположим, что начальная дата и время находятся в A2, выражение =ТДАТА()-A2 возвращает следующие результаты, при условии, что вы применили соответствующий формат времени к столбцу B (в этом примере «ч:мм») :
Если прошло больше чем 24 часа, используйте один из этих форматов времени , например Д «дн.» ч:мм:сс, как показано на скриншоте ниже:
Если ваши начальные данные содержат только время без дат, вам нужно использовать функцию ВРЕМЯ, чтобы правильно рассчитать, сколько времени прошло. Например, следующая формула возвращает время, истекшее с момента, указанного в ячейке A2, и до текущего момента:
=ВРЕМЯ(ЧАС(ТДАТА()); МИНУТЫ(ТДАТА()); СЕКУНДЫ(ТДАТА())) — A2
Примечание. Прошедшее время не обновляется в режиме реального времени, оно заново рассчитывается только при повторном открытии или пересчете рабочей книги. Чтобы принудительно обновить результат, нажмите либо Shift + F9
, чтобы пересчитать активную таблицу, или F9
для пересчета всех открытых книг. Еще один способ быстрого пересчета – внесите изменения в любую ячейку вашего рабочего листа.
Отображение разницы во времени как «XX дней, XX часов, XX минут и XX секунд».
Это, вероятно, самая удобная формула для расчета разницы во времени в Excel. Вы используете функции ЧАС, МИНУТЫ и СЕКУНДЫ для возврата соответствующих единиц времени, и функцию ЦЕЛОЕ для вычисления разницы в днях. Затем вы объединяете все эти функции в одно выражение вместе с текстовыми пояснениями:
=ЦЕЛОЕ(B2-A2)&» дн., «&ЧАС(B2-A2)&» час., «&МИНУТЫ(B2-A2)&» мин. и «&СЕКУНДЫ(B2-A2)&» сек.»
Вот как это может выглядеть:
Чтобы скрыть нулевые результаты в формуле разницы во времени в Excel, встройте в нее четыре функции ЕСЛИ:
=ЕСЛИ(ЦЕЛОЕ(B2-A2)>0; ЦЕЛОЕ(B2-A2) & » дн., «;»») &
ЕСЛИ(ЧАС(B2-A2)>0; ЧАС(B2-A2) & » час., «;»») &
ЕСЛИ(МИНУТЫ(B2-A2)>0; МИНУТЫ(B2-A2) & » мин. и «;»») &
ЕСЛИ(СЕКУНДЫ(B2-A2)>0; СЕКУНДЫ(B2-A2) & » сек.»;»»)
Синтаксис может показаться чрезмерно сложным, но это работает
Кроме того, вы можете рассчитать разницу во времени, просто вычитая время начала из времени окончания (например =B2-A2 ), а затем применив к ячейке следующий формат времени:
Д «дн.,» ч «час.,» м «мин. и » с «сек.»
Преимущество этого подхода заключается в том, что вашим результатом будет обычное значение времени, которое вы можете задействовать в других расчетах, в то время как результатом сложной формулы, описанной выше, является текст.
Недостатком же здесь является то, что пользовательский формат времени не может различать нулевые и ненулевые значения и игнорировать нули.
Как рассчитать и отобразить отрицательное время в Excel
При расчете разницы во времени в Excel вы иногда можете получить результат в виде ошибки ######, если вдруг она представляет собой отрицательное число. Это происходит, если время начала больше, чем время окончания события. Такое часто случается, если рассчитывают продолжительность каких-то событий без учета даты. Получается, что время окончания меньше, чем время начала, поскольку это просто время следующего дня. К примеру, мы начинаем работу в 17 часов и заканчиваем на следующий день в 10 часов.
Но есть ли способ правильно отображать отрицательное время в Excel? Конечно, способ есть, и даже не один.
Способ 1. Измените систему дат Excel на систему дат 1904 года.
Самый быстрый и простой способ нормально отображать отрицательное время (со знаком минус) — это перейти на систему дат 1904 года. Для этого нажмите « Файл» > «Параметры» > «Дополнительно », прокрутите вниз до раздела « При расчете этой книги» и поставьте галочку в поле «Использовать систему дат 1904».
Нажмите OK
, чтобы сохранить новые настройки, и теперь отрицательные величины времени будут отображаться правильно, как отрицательные числа:
Как видите, время начала больше, чем время окончания, и результат получен со знаком «минус».
Способ 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
По сути, есть 2 способа сложения и вычитания времени в Excel:
- При помощи функции ВРЕМЯ.
- Применяя арифметические вычисления, основанные на количестве часов (24), минут (1440) и секунд (86400) в одних сутках.
Функция ВРЕМЯ(часы; минуты; секунды) делает вычисления времени в Excel очень простыми, однако не позволяет добавлять или вычитать более 23 часов, 59 минут или 59 секунд.
Если вы работаете с большими временными интервалами, то используйте один из способов, описанных ниже.
Как добавить или вычесть часы
Чтобы добавить часы к заданному времени в Excel, вы можете взять на вооружение одну из следующих формул.
Функция ВРЕМЯ для добавления до 24 часов
= Время начала + ВРЕМЯ( N часов ; 0 ; 0)
Например, если ваше время начала записано в ячейке A2, и вы хотите добавить к нему 2 часа, формула выглядит следующим образом:
=A2 + ВРЕМЯ(4; 0; 0)
Примечание. Если вы попытаетесь добавить более 23 часов с помощью функции ВРЕМЯ, указанные часы будут разделены на 24, а остаток от деления будет добавлен к времени начала. Например, если вы попытаетесь добавить 28 часов к «10:00» (ячейка A2) с помощью формулы =A4 + ВРЕМЯ(28; 0; 0), результатом будет «14:00», т. е. A2 + 4 часа.
Как добавить любое количество часов (меньше или больше 24 часов)
Следующая формула не имеет ограничений на количество часов, которые вы хотите добавить:
= Время начала + ( N часов / 24)
Например, чтобы добавить 36 часов к времени начала в ячейке A2:
=A2 + (36/24)
Чтобы вычесть часы из заданного времени, вы используете аналогичные формулы и просто заменяете «+» знаком «-»:
Например, чтобы вычесть 40 часов из времени в ячейке A2, можно употребить формулу:
=A2-(40/24)
Если вычитаем менее чем 24 часа, то используйте функцию ВРЕМЯ:
=A2 — ВРЕМЯ(4; 0; 0)
Как прибавить или вычесть минуты
Чтобы добавить минуты к заданному времени, используйте те же методы, которые мы только что использовали для добавления часов.
Чтобы добавить или вычесть менее 60 минут
Используйте функцию ВРЕМЯ и укажите минуты, которые вы хотите добавить или вычесть, во втором аргументе:
= Время начала + ВРЕМЯ(0; N минут ; 0)
Вот несколько примеров для расчета минут в Excel:
Чтобы добавить 30 минут ко времени в A2: =A2 + ВРЕМЯ(0;30;0)
Чтобы вычесть 50 минут из времени в A2: =A2 — ВРЕМЯ(0;50;0)
Как добавить или вычесть более 60 минут
При расчете разделите количество минут на 1440, то есть на количество минут в сутках, и прибавьте получившееся число к времени начала:
= Время начала + ( N минут / 1440)
Чтобы вычесть минуты из времени, просто замените плюс знаком минус. Например:
Чтобы добавить 600 минут: =A2 + (600/1440)
Чтобы вычесть 600 минут: =A2 — (600/1440)
Как прибавить или вычесть секунды
Подсчеты с секундами в 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)
Примечание:
- Если вычисленное время отображается в виде десятичного числа, примените настраиваемый формат даты/времени к ячейкам.
- Если после применения пользовательского форматирования в ячейке отображается #########, то скорее всего, ячейка недостаточно широка для отображения даты и времени. Чтобы исправить это, увеличьте ширину столбца, дважды щелкнув или перетащив правую его границу.
Как суммировать время в Excel
Формула суммирования времени в Excel — это обычная функция СУММ, и применение правильного формата времени к результату — это то, что помогает получить верный результат.
Предположим, у вас есть сведения об отработанном времени в столбце B, и вы хотите его суммировать, чтобы посчитать общее количество рабочих часов за неделю. Вы пишете простую формулу СУММ
=СУММ(B2:B8)
Затем устанавливаете в ячейке нужный формат времении получаете результат, как на скриншоте ниже.
В некоторых случаях формат времени по умолчанию работает просто отлично, но иногда вам может понадобиться более тонкая настройка шаблона, например, для отображения общего времени в виде минут и секунд или только секунд. Хорошей новостью является то, что никаких других вычислений не требуется. Все, что вам нужно сделать, это применить правильный формат времени к ячейке.
Щелкните правой кнопкой мыши ячейку и выберите «Формат ячеек» в контекстном меню или нажмите Ctrl + 1, чтобы открыть диалоговое окно «Формат ячеек». Выберите «Пользовательский» и введите один из следующих форматов времени в поле «Тип»:
- Чтобы отобразить общее время в часах и минутах: [ч]:мм
- Чтобы отобразить общее время в минутах и секундах: [м]:сс
- Чтобы отобразить общее время в секундах: [сс]
Примечание. Вышеупомянутые пользовательские форматы времени работают только для положительных значений. Если результатом ваших расчетов времени является отрицательное число, например, когда вы вычитаете большее время из меньшего, результат будет отображаться как #####. Чтобы по-другому отображать отрицательное время, см. раздел Пользовательский формат для отрицательных значений времени .
Кроме того, имейте в виду, что формат времени, примененный к ячейке, изменяет только представление на дисплее, не изменяя содержимое ячейки. На самом деле это обычное время, которое хранится в виде десятичной дроби во внутренней системе Excel. Это означает, что вы можете свободно ссылаться на него в других формулах и вычислениях.
Вот как вы можете рассчитывать время в Excel. Чтобы узнать о других способах управления датами и временем в 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))
Итоговая формула приведена в
файле примера:
=РАЗНДАТ(A2;B2;»y»)&» г. «&РАЗНДАТ(A2;B2;»ym»)&» мес. «&ЕСЛИ(ДЕНЬ(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);»[<1]год;[<4]года;лет»)&» «;)& ЕСЛИ(РАЗНДАТ(A2;B2;»ym»);РАЗНДАТ(A2;B2;»ym»)&» меся»&ТЕКСТ(ОСТАТ(РАЗНДАТ(A2;B2;»ym»)-1; 11);»[<1]ц;[<4]ца;цев»)&» «;)& ЕСЛИ(РАЗНДАТ(A2;B2;»md»);РАЗНДАТ(A2;B2;»md»)&» д»&ТЕКСТ(ОСТАТ(МАКС(ОСТАТ(РАЗНДАТ(A2;B2;»md»)-11;100);9); 10);»[<1]ень;[<4]ня;ней»);)
Окончательно результат будет выглядеть так:
37 лет 1 месяц 4 дня
.
О вычислении страхового стажа
Формулы этой статьи НЕ позволяют правильно вычислить
страховой (трудовой) стаж
с точностью до дней. Поясним сказанное на примере (также см. статью
Функция РАЗНДАТ() — Вычисление разности двух дат в днях, месяцах, годах в MS EXCEL
)
Найдем разницу дат 30.01.15. и 16.03.2015. Функция
РАЗНДАТ()
с параметрами md и ym подсчитает, что разница составляет 1 месяц и 14 дней.
Алгоритм расчета этой функции следующий: сначала функция последовательно прибавляет месяцы к дате начала, до тех пор пока получившаяся дата меньше конечной. Т.е. к 30.01.2015 функция прибавит 1 месяц и получит 30.02.2015, но такой даты не существует, в феврале 2015г. 28 дней! Ничего страшного, функция запоминает, что нужно отнять 2 дня, чтобы получить правильную дату! Затем идет подсчет оставшихся дней в марте — их 16. Затем, функция к 16 дням прибавляет -2, и получаем 14 дней. Естественно, такой расчет не верен.
Получается, что функцию
РАЗНДАТ()
можно использовать только для расчета
полных лет
и
месяцев
, но без дней. Рассмотренные выше формулы будут в основном возвращать правильный результат (иногда, конечно, будет возникать погрешность в 1-2 дня в меньшую сторону), но часто удобство применения этой функции перевешивает требования к точности. Такой подход безусловно не годится для расчета страхового стажа
для определения размера пособий по временной нетрудоспособности (об этом см. статью
Расчет страхового (трудового) стажа в MS EXCEL
)
.
Обратная задача
Теперь решим обратную задачу: задав количество количество лет, месяцев и дней, рассчитаем конечную дату.
Конечную дату будем рассчитывать двумя способами: через функцию
ДАТА()
и
ДАТАМЕС()
=
ДАТА(ГОД(A8)+B8;МЕСЯЦ(A8)+C8;ДЕНЬ(A8)+D8)
=ДАТАМЕС(ДАТА(ГОД(A8)+B8;МЕСЯЦ(A8);ДЕНЬ(A8));C8)+D8
Вычислив конечную дату, затем вычислим с помощью
РАЗНДАТ()
разницу между ними (должна совпасть с заданной). И наконец, из конечной даты получим начальную, вычтя заданное количество лет, месяцев и дней с использованием формул:
=
ДАТА(ГОД(E8)-B8;МЕСЯЦ(E8)-C8;ДЕНЬ(E8)-D8)
=ДАТАМЕС(ДАТА(ГОД(E16)-B8;МЕСЯЦ(E16);ДЕНЬ(E16));-C8)-D8
Если для начальной даты 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
, в которой дается формула, учитывающая вышеуказанную ситуацию (см. раздел «Еще раз о кривизне
РАЗНДАТ()
«).
Содержание
- Расчет количества дней
- Способ 1: простое вычисление
- Способ 2: функция РАЗНДАТ
- Способ 3: вычисление количеств рабочих дней
- Вопросы и ответы
Для выполнения определенных задач в Excel нужно определять, сколько дней прошло между некоторыми датами. К счастью, у программы имеются инструменты, которые способны решить данный вопрос. Давайте выясним, какими способами можно посчитать разность дат в Экселе.
Расчет количества дней
Прежде, чем начать работать с датами, нужно отформатировать ячейки под данный формат. В большинстве случаев, при введении комплекта символов, похожего на дату, ячейка сама переформатируется. Но лучше все-таки сделать это вручную, чтобы подстраховать себя от неожиданностей.
- Выделяем пространство листа, на котором вы планируете производить вычисления. Кликаем правой кнопкой мыши по выделению. Активируется контекстное меню. В нём выбираем пункт «Формат ячейки…». Как вариант, можно набрать на клавиатуре сочетание клавиш Ctrl+1.
- Открывается окно форматирования. Если открытие произошло не во вкладке «Число», то следует в неё перейти. В блоке параметров «Числовые форматы» выставляем переключатель в позицию «Дата». В правой части окна выбираем тот тип данных, с которым собираемся работать. После этого, чтобы закрепить изменения, жмем на кнопку «OK».
Теперь все данные, которые будут содержаться в выделенных ячейках, программа будет распознавать как дату.
Способ 1: простое вычисление
Проще всего вычислить разность дней между датами с помощью обычной формулы.
- Записываем в отдельные ячейки отформатированного диапазона даты, разность между которыми нужно вычислить.
- Выделяем ячейку, в которой будет выводиться результат. В ней должен быть установлен общий формат. Последнее условие очень важно, так как, если в этой ячейке стоит формат даты, то в таком случае и результат будет иметь вид «дд.мм.гг» или другой, соответствующий данному формату, что является некорректным итогом расчетов. Текущий формат ячейки или диапазона можно просмотреть, выделив его во вкладке «Главная». В блоке инструментов «Число» находится поле, в котором отображается данный показатель.
Если в нем стоит значение, отличное от «Общий», то в таком случае, как и в предыдущий раз, с помощью контекстного меню запускаем окно форматирования. В нем во вкладке «Число» устанавливаем вид формата «Общий». Жмем на кнопку «OK».
- В отформатированную под общий формат ячейку ставим знак «=». Кликаем по ячейке, в которой расположена более поздняя из двух дат (конечная). Далее жмем на клавиатуре знак «-». После этого выделяем ячейку, в которой содержится более ранняя дата (начальная).
- Чтобы увидеть, сколько времени прошло между этими датами, жмем на кнопку Enter. Результат отобразится в ячейке, которая отформатирована под общий формат.
Способ 2: функция РАЗНДАТ
Для вычисления разности в датах можно также применять специальную функцию РАЗНДАТ. Проблема в том, что в списке Мастера функций её нет, поэтому придется вводить формулу вручную. Её синтаксис выглядит следующим образом:
=РАЗНДАТ(начальная_дата;конечная_дата;единица)
«Единица» — это формат, в котором в выделенную ячейку будет выводиться результат. От того, какой символ будет подставлен в данный параметр, зависит, в каких единицах будет возвращаться итог:
- «y» — полные года;
- «m» — полные месяцы;
- «d» — дни;
- «YM» — разница в месяцах;
- «MD» — разница в днях (месяцы и годы не учитываются);
- «YD» — разница в днях (годы не учитываются).
Так как нам нужно рассчитать разницу в количестве дней между датами, то наиболее оптимальным решением будет применение последнего варианта.
Также нужно обратить внимание, что, в отличие от способа с применением простой формулы, описанного выше, при использовании этой функции на первом месте должна находиться начальная дата, а конечная – на втором. Иначе расчеты будут некорректными.
- Записываем формулу в выбранную ячейку, согласно её синтаксису, описанному выше, и первичным данным в виде начальной и конечной даты.
- Для того, чтобы произвести расчет, жмем кнопку Enter. После этого результат, в виде числа обозначающего количество дней между датами, будет выведен в указанную ячейку.
Способ 3: вычисление количеств рабочих дней
В Экселе также имеется возможность произвести вычисление рабочих дней между двумя датами, то есть, исключая выходные и праздничные. Для этого используется функция ЧИСТРАБНИ. В отличие от предыдущего оператора, она присутствует в списке Мастера функций. Синтаксис у этой функции следующий:
=ЧИСТРАБДНИ(нач_дата;кон_дата;[праздники])
В этой функции основные аргументы, такие же, как и у оператора РАЗНДАТ – начальная и конечная дата. Кроме того, имеется необязательный аргумент «Праздники».
Вместо него следует подставлять даты праздничных нерабочих дней, если таковые имеются за охватываемый период. Функция производит расчет всех дней указанного диапазона, исключая субботы, воскресенья, а также те дни, которые добавлены пользователем в аргумент «Праздники».
- Выделяем ячейку, в которой будет находиться итог вычисления. Кликаем по кнопке «Вставить функцию».
- Открывается Мастер функций. В категории «Полный алфавитный перечень» или «Дата и время» ищем элемент «ЧИСТРАБДНИ». Выделяем его и жмем на кнопку «OK».
- Открывается окно аргументов функции. Вводим в соответствующие поля дату начала и конца периода, а также даты праздничных дней, если таковые имеются. Жмем на кнопку «OK».
После указанных выше манипуляций в предварительно выделенной ячейке отобразится количество рабочих дней за указанный период.
Урок: Мастер функций в Excel
Как видим, программа Excel предоставляет своим пользователем довольно удобный инструментарий для расчета количества дней между двумя датами. При этом, если нужно рассчитать просто разницу в днях, то более оптимальным вариантом будет применение простой формулы вычитания, а не использование функции РАЗНДАТ. А вот если требуется, например, подсчитать количество рабочих дней, то тут на помощь придет функция ЧИСТРАБДНИ. То есть, как всегда, пользователю следует определиться с инструментом выполнения после того, как он поставил конкретную задачу.
Иногда в Excel необходимо посчитать количество лет и месяцев между двумя датами. Например, от 23 ноября 1960-го года и до 13 мая 2014г. прошло 53 года и 5 месяцев.
Как узнать сколько прошло лет и месяцев с даты в Excel?
Формулу, которую можно использовать для определения в годах и месяцах пройденного времени между двумя датами требует к использованию 2 функции и пару текстовых строк. Ячейка C2 содержит следующую формулу как показано на рисунке:
Примечание: в ячейке C9 ошибка: #ЧИСЛО! так как начальная дата младше конечной, что по определению функции РАЗНДАТ не верно. Значение в первом аргументе функции должно быть всегда меньше значения во втором аргументе.
Необходимое вычисление реализуется с помощью одной и той же функции РАЗНДАТ только с разными значениями в третьем аргументе. Поэтому функцию необходимо вызывать 2 раза. Кроме того, для удобочитаемости следует добавить в формулу текстовые символы, которые присоединены символом амперсантом «&».
Первая функция РАЗНДАТ в формуле содержит код лет как единицу измерения времени и вычисляет сколько прошло лет между двумя датами: начальной и конечной.
Вторая функция РАЗНДАТ в формуле содержит в своем третьем аргументе код «YM». Благодаря чему вычисляет количество пройденных месяцев в неполном году без учета полных пройденных лет между этими же двумя датами.
И наконец обе функции в формуле объединены строками с текстовым описанием, чтобы пользователь мог наглядно и легко прочитать какое число — это года, а какое – месяцы. Так как результат вычисления формулой двух числовых значений находятся в одной ячейке.
Вычисление разности двух дат
Используйте функцию РАЗНДАТ, если нужно вычислить разницу двух дат. Сначала поместите дату начала в одну ячейку, а дату окончания — в другую. Затем введите формулу, например одну из следующих.
Предупреждение: Если значение нач_дата больше значения кон_дата, возникнет ошибка #ЧИСЛО!
Разница в днях
В этом примере дата начала находится в ячейке D9, а дата окончания — в ячейке E9. Формула находится в ячейке F9. Параметр «д» возвращает количество полных дней между двумя датами.
Разница в неделях
В этом примере дата начала находится в ячейке D13, а дата окончания — в ячейке E13. Параметр «д» возвращает количество дней. Но обратите внимание на /7 в конце. Это делит количество дней на 7, так как в неделе содержится 7 дней. Обратите внимание, что этот результат также должен быть представлен в числовом формате. Нажмите клавиши CTRL+1. Затем щелкните Числовой > Число десятичных знаков: 2.
Разница в месяцах
В этом примере дата начала находится в ячейке D5, а дата окончания — в ячейке E5. В формуле «м» возвращает количество полных месяцев между двумя днями.
Разница в годах
В этом примере дата начала находится в ячейке D2, а дата окончания — в ячейке E2. Параметр «г» возвращает количество полных лет между двумя днями.
Расчет возраста в накопленных годах, месяцах и днях
Вы также можете вычислить возраст или время работы другого человека. Результат может выглядеть так: «2 года, 4 месяца, 5 дней».
1. Используйте функцию РАЗНДАТ, чтобы найти общее количество лет.
В этом примере дата начала находится в ячейке D17, а дата окончания — в ячейке E17. В формуле параметр «г» возвращает количество полных лет между двумя днями.
2. Снова используйте функцию РАЗНДАТ с «гм», чтобы найти месяцы.
В другой ячейке используйте функцию РАЗНДАТ с параметром «гм». Параметр «гм» возвращает количество оставшихся месяцев с последнего полного года.
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.
Скачивание примеров
Вы можете скачать образец книги со всеми примерами из этой статьи. Вы можете воспользоваться ими или создать собственные формулы.
Скачать примеры вычислений дат
Другие вычисления даты и времени
Как показано выше, функция РАЗНДАТ вычисляет разницу между датой начала и датой окончания. Однако вместо ввода определенных дат в формуле можно также использовать функцию СЕГОДНЯ(). При использовании функции СЕГОДНЯ() Excel в качестве даты использует текущую дату компьютера. Имейте в виду, что эта переменная будет меняться при повторном открыть файле в будущем.
Обратите внимание, эта статья была написана 6 октября 2016 г.
Используйте функцию ЧИСТРАБДНИ.МЕЖД, если нужно вычислить количество рабочих дней между двумя датами. Вы также можете исключить выходные и праздники.
Прежде чем начать. Решите, нужно ли исключить даты праздников. При исключении введите список дат праздников в отдельной области или на отдельном листе. Поместите каждую дату праздника в собственную ячейку. Затем выделите эти ячейки и нажмите Формулы > Задать имя. Назовите диапазон МоиПраздники и нажмите ОК. Затем создайте формулу с помощью указанных ниже действий.
1. Введите дату начала и окончания.
В этом примере дата начала находится в ячейке D53, а дата окончания — в ячейке E53.
2. В другой ячейке введите формулу следующего вида.
Введите формулу, как в примере выше. Цифра 1 в формуле устанавливает субботы и воскресенья в качестве выходных и исключает их из общего количества.
Примечание. В Excel 2007 нет функции ЧИСТРАБДНИ.МЕЖД. Однако там есть функция ЧИСТРАБДНИ. Указанный выше пример будет выглядеть в Excel 2007 следующим образом: =ЧИСТРАБДНИ(D53;E53). Не нужно указывать цифру 1, так как функция ЧИСТРАБДНИ предполагает, что выходными являются суббота и воскресенье.
3. При необходимости измените цифру 1.
Если суббота и воскресенье не являются выходными днями, измените 1 на другое числовое значение из списка IntelliSense. Например, значение 2 устанавливает воскресенья и понедельники в качестве выходных дней.
Если вы используете Excel 2007, пропустите этот шаг. Функция ЧИСТРАБДНИ в Excel 2007 всегда предполагает, что выходными являются суббота и воскресенье.
4. Введите имя диапазона праздников.
Если вы создали имя диапазона праздников в разделе «Прежде чем начать» выше, введите его в конце следующим образом. Если у вас нет праздников, вы можете не использовать точку с запятой и МоиПраздники. Если вы используете Excel 2007, указанный выше пример будет выглядеть так: =ЧИСТРАБДНИ(D53;E53;MyHolidays).
Совет. Если вы не хотите указывать имя диапазона праздников, вместо этого вы можете ввести диапазон, например D35:E39. Или можно ввести в формулу каждый праздник. Например, если ваши праздники приходились на 1 и 2 января 2016 г., введите их следующим образом: =ЧИСТРАБДНИ.МЕЖД(D53;E53;1;{«01.01.2016″;»02.01.2016»}). В Excel 2007 это будет выглядеть так: =ЧИСТРАБДНИ(D53;E53;{«01.01.2016″;»02.01.2016»})
Вы можете вычислить затраченное время, вычитая одно время из другого. Сначала поместите время начала в одну ячейку, а время окончания — в другую. Вводите время полностью, включая час, минуты и пробел перед AM или PM. Ниже рассказывается, как это сделать.
1. Введите время начала и время окончания.
В этом примере время начала находится в ячейке D80, а время окончания — в ячейке E80. Введите час, минуты и пробел перед AM или PM.
2. Установите формат «ч:мм AM/PM».
Выберите обе даты и нажмите клавиши CTRL+1 (или +1 на компьютере Mac). Выберите вариант (все форматы) > ч:мм AM/PM, если он еще не установлен.
3. Вычтите два времени.
В другой ячейке вычтите ячейку времени начала из ячейки времени окончания.
4. Установите формат «ч:мм».
Нажмите клавиши CTRL+1 (или +1 на Mac). Выберите (все форматы) > ч:мм, чтобы результат не содержал AM и PM.
Чтобы вычислить время между двумя датами со временем, можно просто вычесть одно значение из другого. Однако необходимо применить форматирование к каждой ячейке, чтобы Excel возвращал нужный результат.
1. Введите две полные даты со временем.
В одной ячейке введите полную дату и время начала. А в другой ячейке введите полную дату и время окончания. Каждая ячейка должна содержать месяц, день, год, час, минуты, и пробел перед AM или PM.
2. Установите формат «14.03.12 1:30 PM».
Выберите обе ячейки и нажмите клавиши CTRL+1 (или +1 на компьютере Mac). Затем выберите Дата > 14.03.12 1:30 PM. Это не дата, которую вы установили, а просто пример того, как будет выглядеть формат. Обратите внимание, что в версиях до Excel 2016 этот формат может использовать другой пример даты, например 14.03.01 1:30 PM.
3. Вычтите два значения.
В другой ячейке вычтите ячейку даты и времени начала из даты и времени окончания. Скорее всего, результат будет выглядеть как число с десятичным знаком. Вы исправите это на следующем шаге.
4. Установите формат «[ч]:мм».
Нажмите клавиши CTRL+1 (или +1 на Mac). Выберите пункт (все форматы). В поле Тип введите [ч]:мм.
Статьи по теме
Функция РАЗНДАТ
Функция ЧИСТРАБДНИ.МЕЖД
ЧИСТРАБДНИ
Дополнительные функции даты и времени
Вычисление разницы во времени