Как сделать разницу дат в excel?
В MS Excel есть чрезвычайно интересная функция, о которой мало кто знает. Настолько мало, что к этой функции в экселе даже не предусмотрено контекстной подсказки при вводе, хотя, как ни странно, в справке к программе она есть и описана довольно неплохо. Называется она РАЗНДАТ() или DATEDIF() и служит для автоматического расчета разницы в днях, месяцах или годах между двумя заданными датами.
Звучит не очень? На самом деле, иногда возможность быстро и точно посчитать сколько же времени прошло с какого-то события, бывает очень полезна. Сколько месяцев прошло с дня вашего рождения, сколько времени вы уже просиживаете штаны на этом месте работы, или сколько дней вы сидите на диете — да мало ли применений этой полезной функции? А самое главное, подсчет можно автоматизировать и при каждом открытии книги MS Excel получать точные данные именно для сегодняшнего дня! Звучит интересно, неправда ли?
Функция РАЗНДАТ() принимает три аргумента:
- Начальная дата — дата с которой ведется счет
- Конечная дата — до которой ведется счет
- Единица измерения — дни, месяцы, годы.
Записывается это так:
=РАЗНДАТ(начальная дата;конечная дата;единица измерения)
Единицы измерения записываются как:
- «y» — разница дат в полных годах
- «m» — разница дат в полных месяцах
- «d» — разница дат в полных днях
- «yd» — разница дат в днях с начала года без учета лет
- «md» — разница дат в днях без учета месяцев и лет
- «ym» — разница дат в полных месяцах без учета лет
Иными словами, чтобы вычислить мой полный возраст в годах на текущий момент, я записываю функцию как:
=РАЗНДАТ(14.07.1984;22.03.2016;»y»)
Обратите внимание — последний аргумент всегда заключен в кавычки.
Если же я хочу получить точный возраст, то запишу усложненную формулу:
=РАЗНДАТ(F2;G2;»y»)&» год «&РАЗНДАТ(F2;G2;»ym»)&» месяцев»
В которой функция РАЗНДАТ() вызывается сразу два раза, с разными значения, а слова «год» и «месяцев» просто пристыковываются к результату. То есть настоящая мощь функции проявляется только тогда, когда её комбинируют с другими возможностями MS Excel.
Ещё один интересный вариант — добавить в функцию ежедневно сдвигающийся относительно сегодняшней даты счетчик. К примеру, если я решу писать формулу которая высчитывает количество дней до моего отпуска в стандартном виде, это будет выглядеть примерно так:
И все было бы правильно, если бы открыв через неделю этот лист, я увидел бы, что количество дней до отпуска сократилось. Однако я увижу тоже самое число — ведь исходные даты не менялись. Соответственно, мне пришлось бы изменить текущую дату, и тогда функция РАЗНДАТ() сделала бы все правильно.
Чтобы избежать это досадной мелочи, в качестве первого аргумента (сегодняшнего числа), я подставлю не ссылку на значение хранящееся в ячейке, а другую функцию. Эта функция называется СЕГОДНЯ() и её основная и единственная задача — возвращать сегодняшнюю дату.
Раз, и проблема решена — отныне, когда бы я не открыл этот лист MS Excel, функция РАЗНДАТ() всегда будет показывать мне точное значение, рассчитанное с учетом сегодняшней даты.
На рабочем листе Excel создан план задач. В одной колонке указаны сроки выполнения для каждой задачи выполнения. Чтобы выделить цветом простроченные сроки поставленных задач нам нужна точная разница между датами в Excel. Для этого будем использовать условное форматирование с формулой РАЗНДАТ.
Как посчитать разницу между датами в Excel
Необходимо выделить цветом названия задач, у которых сроки заканчиваются уже через 7 дней. Пример таблицы плана задач:
- Выделите диапазон ячеек A2:A7 и выберите инструмент: «ГЛАВНАЯ»-«Стили»-«Условное форматирование»-«Создать правило».
- Выбираем опцию: «Использовать формулу для определения форматируемых ячеек».
- Разница в днях между датами будет вычисляется функцией =РАЗНДАТ(). Для этого В поле ввода введите формулу: =РАЗНДАТ($D$2; C2;»d»)
Для выполнения определенных задач в Excel нужно определять, сколько дней прошло между некоторыми датами. К счастью, у программы имеются инструменты, которые способны решить данный вопрос. Давайте выясним, какими способами можно посчитать разность дат в Экселе.
Расчет количества дней
Прежде, чем начать работать с датами, нужно отформатировать ячейки под данный формат. В большинстве случаев, при введении комплекта символов, похожего на дату, ячейка сама переформатируется. Но лучше все-таки сделать это вручную, чтобы подстраховать себя от неожиданностей.
- Выделяем пространство листа, на котором вы планируете производить вычисления. Кликаем правой кнопкой мыши по выделению. Активируется контекстное меню. В нём выбираем пункт «Формат ячейки…». Как вариант, можно набрать на клавиатуре сочетание клавиш Ctrl+1.
- Открывается окно форматирования. Если открытие произошло не во вкладке «Число», то следует в неё перейти. В блоке параметров «Числовые форматы» выставляем переключатель в позицию «Дата». В правой части окна выбираем тот тип данных, с которым собираемся работать. После этого, чтобы закрепить изменения, жмем на кнопку «OK».
Теперь все данные, которые будут содержаться в выделенных ячейках, программа будет распознавать как дату.
Способ 1: простое вычисление
Проще всего вычислить разность дней между датами с помощью обычной формулы.
- Записываем в отдельные ячейки отформатированного диапазона даты, разность между которыми нужно вычислить.
- Выделяем ячейку, в которой будет выводиться результат. В ней должен быть установлен общий формат. Последнее условие очень важно, так как, если в этой ячейке стоит формат даты, то в таком случае и результат будет иметь вид «дд.мм.гг» или другой, соответствующий данному формату, что является некорректным итогом расчетов. Текущий формат ячейки или диапазона можно просмотреть, выделив его во вкладке «Главная». В блоке инструментов «Число» находится поле, в котором отображается данный показатель.
Если в нем стоит значение, отличное от «Общий», то в таком случае, как и в предыдущий раз, с помощью контекстного меню запускаем окно форматирования. В нем во вкладке «Число» устанавливаем вид формата «Общий». Жмем на кнопку «OK».
- В отформатированную под общий формат ячейку ставим знак «=». Кликаем по ячейке, в которой расположена более поздняя из двух дат (конечная). Далее жмем на клавиатуре знак «-». После этого выделяем ячейку, в которой содержится более ранняя дата (начальная).
- Чтобы увидеть, сколько времени прошло между этими датами, жмем на кнопку Enter. Результат отобразится в ячейке, которая отформатирована под общий формат.
Способ 2: функция РАЗНДАТ
Для вычисления разности в датах можно также применять специальную функцию РАЗНДАТ. Проблема в том, что в списке Мастера функций её нет, поэтому придется вводить формулу вручную. Её синтаксис выглядит следующим образом:
=РАЗНДАТ(начальная_дата;конечная_дата;единица)
«Единица» — это формат, в котором в выделенную ячейку будет выводиться результат. От того, какой символ будет подставлен в данный параметр, зависит, в каких единицах будет возвращаться итог:
- «y» — полные года;
- «m» — полные месяцы;
- «d» — дни;
- «YM» — разница в месяцах;
- «MD» — разница в днях (месяцы и годы не учитываются);
- «YD» — разница в днях (годы не учитываются).
Так как нам нужно рассчитать разницу в количестве дней между датами, то наиболее оптимальным решением будет применение последнего варианта.
Также нужно обратить внимание, что, в отличие от способа с применением простой формулы, описанного выше, при использовании этой функции на первом месте должна находиться начальная дата, а конечная – на втором. Иначе расчеты будут некорректными.
- Записываем формулу в выбранную ячейку, согласно её синтаксису, описанному выше, и первичным данным в виде начальной и конечной даты.
- Для того, чтобы произвести расчет, жмем кнопку Enter. После этого результат, в виде числа обозначающего количество дней между датами, будет выведен в указанную ячейку.
Способ 3: вычисление количеств рабочих дней
В Экселе также имеется возможность произвести вычисление рабочих дней между двумя датами, то есть, исключая выходные и праздничные. Для этого используется функция ЧИСТРАБНИ. В отличие от предыдущего оператора, она присутствует в списке Мастера функций. Синтаксис у этой функции следующий:
=ЧИСТРАБДНИ(нач_дата;кон_дата;
Этот формат или вычисления в этом формате отличаются от всех вышеприведенных примеров. При необходимости получить количество дней от конкретной даты, нам необходимо в ячейке, где будет результат выставить знак равенства (=) и затем выделяем ячейку с установленной датой, от которой будут производиться вычисления. Выделяем ее курсором. Следующим действием ставим минус (-). Таким образом, половина формулы составлена. Остается только вставить число дней, которое необходимо вычесть. Его вводим с клавиатуры компьютера. Далее «Enter» и задача решена. В ячейке ожидаемый результат.
Вычисление времени происходит аналогично вычислению дат. То есть от более позднего временного значения отнимаем более раннее. На примере вычисления прошедших минут с периода 22:55 часа и 15:13 часов покажем алгоритм вычисления разности в формате «время». Следует отметить, наверное, что формат при вводе цифр именно таким образом, как вводятся временные данные, автоматически становится форматом времени. В ячейке ожидаемого результата ставим привычное «равно» (=), затем активируем курсором мышки ячейку с поздним временем, у нас это ячейка где стоит 22:55. Затем вводим значение «минус» (-) затем переходим к активации ячейки с более ранним временным значением, то есть 15:13. В итоге формула будет выглядеть следующим образом «=C4-E4». Активируем вычисление – жмем Enter.
Что мы видим в ячейке результата? Вовсе не то что ожидали. И это верно. Ожидая минуты — получили часы и минуты. Что делать, что бы получить результат в минутах? Необходимо умножить количество минут на количество часов в сутках. Проще говоря, умножаем 60 на 24. Что можно сделать через коэффициент 1440, то есть умножить 7часов 42 минуты на 1440. В excel это делаем следующим образом. Открываем ячейку знаком «равно» (=) жмем на ячейку с данными 7:42. Данные отобразятся в строке формулы,
затем жмем на «умножить» (*) и подставляем значение 1440. Жмем Enter. Все — смотрим результат.
А он опять не тот, что мы ожидали. Мы видим 0:00. Это связано с тем, что при вводе коэффициента 1440 формат числа автоматически изменился на временной, что и дало искаженный результат. Что бы увидеть искомое значение в количествах минут следует изменить формат с «время» на «числовой» или «общий».
Формат меняется активированием ячейки и изменением в окне меню формата на «общий». Данную операцию по изменению формата, возможно, проделать с помощью клавиши Ctrl + 1. Пользуясь этими клавишами, активируем список форматов. Выбираем из списка формат «общий» Нажимаем Enter и процесс изменения формата завершен.
После вышеуказанных манипуляций с форматами и расчетами и мы получим искомый результат 462 м.