В excel нет функции разндат
СИНТАКСИС:
=РАЗНДАТ( нач_дата ; кон_дата ; код )
АРГУМЕНТЫ:
1. нач_дата — начальная дата.
2. кон_дата — конечная дата .
3. код — текстовое значение, которое указывает в каких единицах необходимо вернуть разницу дат.
Список допустимых значений аргумента:
ОГРАНИЧЕНИЯ:
Если аргумент кон_дата соответствует более ранней дате чем аргумент нач_дата функция вернёт значение ошибки #ЧИСЛО .
Если какой-либо из аргументов нач_дата или кон_дата не являются допустимой датой, то функция вернёт значение ошибки #ЗНАЧ.
ПРИМЕРЫ ИСПОЛЬЗОВАНИЯ:
ФОРМУЛЫ МАССИВА:
Функция работает в формулах массива
ЭТОГО НЕТ В ОФИЦИАЛЬНОЙ СПРАВКЕ EXCEL:
Собственно говоря, самой функции РАЗНДАТ нет в справке Excel. Более того нет её и в мастере функций. И при наборе вручную первых букв названия функции Excel тоже не покажет подсказку в выпадающем списке. Объясняется это довольно просто. Эта функция изначально не является функцией Excel. Она всего лишь поддерживается Excel для совместимости с другими системами электронных таблиц. В Excel эта функция попала из э лектронных таблиц Lotus 1-2-3.
Пример функции РАЗНДАТ для расчета времени между датами в Excel
Функция РАЗНДАТ позволяет выяснить, сколько полных дней, месяцев или лет прошло между двумя указанными датами. Таким образом можно легко посчитать в Excel: возраст от даты рождения, трудовой стаж, сроки беременности и др. Примеры расчетов точных сроков, возрастов и продолжительности до окончания периодов времени с помощью функции РАЗНДАТ. Как правильно считать разницу между двумя датами при 365 и 366 днях в году?
Примеры использования функции РАЗНДАТ
Пример 1. Требуется вычислить, зная дату рождения работника, сколько полных лет, месяцев и дней ему исполнилось на момент сегодняшней даты.
Используя в качестве аргументов саму дату рождения и функцию СЕГОДНЯ(), а также значения «Y», «M» и «D» для единицы, получим следующий набор формул:
Таким образом мы получили точный возраст в годах, месяцах и днях от даты рождения.
Как точно посчитать сколько прошло времени: лет, месяцев и дней?
Пример 2. В документе записаны даты рождения сотрудников. Требуется выяснить, сколько лет, месяцев и дней исполнилось каждому из них на момент сегодняшнего дня.
Используя уже знакомую формулу =РАЗНДАТ(B2;СЕГОДНЯ();»Y») для ячейки С2 получим количество полных лет возраста каждого из работников. Протянем эту формулу на весь столбец ниже.
Модифицировав формулу, использованную выше, заменяем значение единицы с «Y» на «YM». Итоговый вид формулы: =РАЗНДАТ(B2;СЕГОДНЯ();»YM»). Таким образом, мы получим на выходе количество полных месяцев возраста, не учитывая прошедшие полные года. Протянем формулу на весь столбец ниже.
В конце нам понадобятся и дни, не вошедшие в месяц. Снова заменяем значение единицы с «YM» на «YD» и получим формулу следующего вида, в которой на выходе будет число дней: =РАЗНДАТ(B2;СЕГОДНЯ();»YD»).
Такое решение можно элегантно улучшить, если использовать функцию СПЕЦПИТЬ() и вызвать окошко аргументов, приведя функцию в следующий вид: =СЦЕПИТЬ(C2;» лет «;D2;» месяцев «;E2;» дня(-ей)»)
Как посчитать сроки окончания действия договора в Excel
Пример 3. В документе записаны даты заключения договоров сотрудников компании. По умолчанию договор заключается на 1 год. Требуется выяснить, сколько дней осталось до момента окончания трудового договора у каждого из сотрудников, чтобы подготовить новые экземпляры для продления договоров.
С помощью функции РАЗНДАТ определим, сколько дней прошло с момента заключения трудового договора. В новом столбце для ячейки С2 используем формулу: =РАЗНДАТ(B2;СЕГОДНЯ();»d») и протянем ее на весь столбец ниже.
Подсчитаем количество оставшихся дней до окончания трудового договора каждого из сотрудников. Для этого в новом столбце вычитаем от количества дней в году значения из столбца С, используя формулу:
Сначала мы определяем количество дней во году по дате (365 или 366) по формуле ЕСЛИ(ОСТАТ(ГОД(B2);4);365;366), а после вычитаем, чтобы узнать сколько осталось -C2.
Для удобства можно добавить еще одну колонку, в которой с помощью условий указать замечание для продления договора, если осталось меньше 10 дней до его окончания. Для ячейки E2 используем формулу:
10;»Действует»;ЕСЛИ(D2
В данной формуле используется функция ЕСЛИ с несколькими условиями. Если до конца срока больше 10-ти суток тогда формула возвращает значение «Действует», а если меньше 10-то тогда одно из условий:
- Если меньше 10-ти суток, но больше чем 0 – значение «Заканчивается».
- Если меньше чем 0, тогда «Просрочен».
Особенности использования функции РАЗНДАТ
- — нач_дата : дата, от которой будет вестись расчет;
- — кон_дата : дата, до которой будет вестись расчет;
- — единица : аргумент, указывающий на величину, в которой будет производиться расчет.
Примечание: аргументы нач_дата и кон_дата могут принимать как числовое значение, так и быть результатом какого-либо вычисления, производимого вне ячеек (например, функции ДАТА(), функции СЕГОДНЯ()).
Примечание: аргумент единица может принимать одно из шести значений:
- — «Y»: в результате подсчетов будет выведено количество полных лет между начальными аргументами;
- — “M”: в результате подсчетов будет выведено количество полных месяцев между начальными аргументами;
- — «D»: в результате подсчетов будет выведено количество полных дней между начальными аргументами;
- — «MD»: в результате подсчетов будет выведено количество дней между датами, не учитывая месяца, прошедшие между датами. Например, при вычислении разницы между 1 сентября 2018 года и 21 ноября 2018 года (что составляет 2 месяца и 20 дней) со значением “MD” будет возвращено значение 20, т.к. прошедшие 2 полных месяца не будут учтены;
- — «YM»: в результате подсчетов будет выведено количество месяцев между датами, не учитывая года, прошедшие между датами. Например, при вычислении разницы между 1 сентября 2010 года и 1 ноября 2018 года (что составляет 8 лет и 2 месяца) со значением “YM” будет возвращено значение 2, т.к. прошедшие 8 полных лет не будут учтены;
- — «YD «: в результате подсчетов будет выведено количество суток между датами, не учитывая года, прошедшие между датами. Например, при вычислении разницы между 1 сентября 2010 года и 2 сентября 2018 года (что составляет 8 лет и 1 день) со значением “YD” будет возвращено значение 1, т.к. прошедшие 8 полных лет не будут учтены.
Функция DATEDIF (РАЗНДАТ) в Excel. Как использовать?
Функция DATEDIF (РАЗНДАТ) в 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. Важно знать аргументы функции и как ими пользоваться;
- Данные даты в функции могут быть введены как:
– дата указанная в виде текста в кавычках;
– число;
– как результат вычисления, формулы, функции.
Примеры использования функции РАЗНДАТ в Excel
Пример №1. Подсчет количества лет между двумя датами
На примере выше, формула возвращает количество лет между двумя датами. Например, функция вернет значение “27” если вы захотите посчитать количество полных лет между двумя датами 19 июня 1989 года и 26 марта 2017 года. Система подсчитывает количество полных лет и игнорирует количество месяцев и дней между датами.
Пример №2. Подсчет количества месяцев между двумя датами
На примере выше, функция DATEDIF (РАЗНДАТ) в Excel возвращает количество полных месяцев между двумя датами – 19 июня 1989 года и 26 марта 2017 года.
Функция возвращает значение “333”, что является количеством полных месяцев между датами указанными выше.
Пример №3. Подсчет количества дней между двумя датами
На примере выше, функция DATEDIF (РАЗНДАТ) в Excel возвращает количество дней между двумя датами. Например, функция возвращает значение “10142” дня между двумя датами – 19 июня 1989 года и 26 марта 2017 года.
Если вы хотите посчитать количество дней между двумя датами, исключая количество лет, которые уже завершены, вам нужно использовать аргумент “YD” в качестве третьего (пример на рисунке ниже):
В приведенном выше примере он возвращает значение “280”, то есть число дней между днями, исключая 27 полных лет.
Если вы хотите посчитать количество дней между двумя датами, исключая количество полных лет и месяцев, используйте атрибут “MD” в качестве третьего аргумента (как показано на рис. ниже):
На примере выше функция возвращает значение “7” означающие количество дней между двумя днями “19” и “26” число, исключая значения лет и месяцев.
РАЗНДАТ (функция РАЗНДАТ)
Вычисляет количество дней, месяцев или лет между двумя датами.
Предупреждение: Функция РАЗНДАТ предлагается в Excel для поддержки старых книг Lotus 1-2-3. В некоторых ситуациях она может выдавать неправильные результаты. Дополнительные сведения см. в разделе «Известные проблемы» в этой статье.
Дата, представляющая собой первую или начальную дату заданного периода. Даты можно вводить в виде текстовых строк в кавычках (например, «30.1.2001»), в виде порядковых номеров (например, 36921 представляет 30 января 2001 г., если используется система дат 1900) или как результаты вычисления других формул или функций (например ДАТАЗНАЧ(«30.1.2001»)).
Дата окончания периода.
Тип возвращаемых данных, где:
Количество полных лет в периоде.
Количество полных месяцев в периоде.
Количество дней в периоде.
Разница в днях между начальной и конечной датой. Месяцы и годы дат не учитываются.
Важно: Не рекомендуется использовать аргумент «MD», так как с ним связаны определенные ограничения. См. раздел «Известные проблемы» ниже.
Разница в месяцах между начальной и конечной датой. Дни и годы дат не учитываются.
Разница в днях между начальной и конечной датой. Годы дат не учитываются.
Даты хранятся в виде последовательных чисел, что позволяет использовать их в вычислениях. По умолчанию дате 1 января 1900 года соответствует номер 1, а 1 января 2008 года — 39448, так как интервал между этими датами составляет 39 447 дней.
Функция РАЗНДАТ полезна в формулах расчета возраста.
Tart_date sбольше, чемnd_datee, результат будет #NUM!.
Два полных года в периоде (2).
440 дней между 1 июня 2001 г. и 15 августа 2002 г. (440)
75 дней между 1 июня и 15 августа без учета годов дат (75)
Известные проблемы
При использовании аргумента «MD» результатом может быть отрицательное число, нуль или неверное значение. Если вы пытаетесь вычислить оставшиеся дни после последнего полного месяца, вот как можно это сделать:
Эта формула вычитает первый день окончания месяца (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 User Voice.
Примечание: Эта страница переведена автоматически, поэтому ее текст может содержать неточности и грамматические ошибки. Для нас важно, чтобы эта статья была вам полезна. Была ли информация полезной? Для удобства также приводим ссылку на оригинал (на английском языке).
Вопрос по Excel
Помогите сделать формулу в Excel для вычисления стажа роботы такого вида :
[ссылка появится после проверки модератором] (закинул на радикал)
Если ссылку не закинут то таблица такого рода.
_________А__________|__B__|
| Дата приема на роботу | Стаж |
___________________________
|______ **.**.****______ | __?__ |
надо формулу для «стажа» чтобы почитало время от приема до сегодняшнего дня.
Нюанс в том, что Вы не найдете эту функцию в списке Мастера функций, нажав кнопку fx — она является недокументированной возможностью Excel (точнее говоря, найти описание этой функции и ее аргументов можно только в полной версии англоязычной справки, поскольку на самом деле она оставлена для совместимости со старыми версиями Excel и Lotus 1-2-3). Поэтому постораюсь изложить это по-русски здесь. Итак.. .
Синтаксис функции следующий:
РАЗНДАТ (начальная_дата; конечная_дата; способ_измерения)
Самый интересный аргумент, конечно, последний. Он определяет, каким именно образом и в каких единицах будет измеряться интервал между начальной и конечной датами. Этот параметр может принимать следующие значения:
«y»разница в полных годах
«m»в полных месяцах
«d»в полных днях
«yd»разница в днях с начала года без учета лет
«md»разница в днях без учета месяцев и лет
«ym»разница в полных месяцах без учета лет
Т. е. при желании подсчитать и вывести, например, ваш стаж в виде «3 г. 4 мес. 12 дн. «, необходимо ввести в ячейку следующую формулу:
или в английской версии Excel:
=DATEDIF(A1,A2,»y») & » y. » & DATEDIF(A1A2,»ym») & » m. » & DATEDIF(A1,A2,»md») & » d.»
Функция РАЗНДАТ() — Вычисление разности двух дат в днях, месяцах, годах в MS EXCEL
Смотрите также правой стороне, а ее в списке промежуточный период в: Файлик бы…
где А1 — ячейка получится вставить стандартным руководствуясь при этомПреобразует дату в числовом версиях эта функция функция находит количество 1 день. Для не рекомендуется (см.
Пример1: не считает! же относится и в EXCEL 2007Для вычислений длительности временных текст по левой. мастера функций (SHIFT+F3).
Синтаксис функции:
днях, например 127.
TimSha с датой поступления
способом через окно параметрами, указывающими выходные формате в минуты. отсутствует. Например, маркер дней в предыдущем месяце значений 31.12.2009 и примеры ниже).начальная_дата 01.02.2007, конечная_датаПример3:
к расчету полных |
при сравнении дат |
интервалов удобней всего |
Значение в ячейке |
Но если просто |
В ячейку A3 введите |
: Пример, однако, неприлагаемый |
на работу, А2 |
Вставка — Функция (Insert |
дни и ихМЕСЯЦ |
версии 2013 означает, |
относительно конечной даты, 01.02.2010 результат вообщеПример1: |
отрицательный (-2 дня)! |
начальная_дата 01.02.2007, конечная_датаРезультат: |
строку формул, тоОбратите внимание, формат «Дата» размер надо… ;) увольнения., ее можно вручнуюГОД формате в месяцы. доступна в выпуске дата принадлежит марту,Не советую использовать формулу
06.03.20091 (месяц), т.к.Результат:начальная_дата 01.02.2007, конечная_дата дня, а не DATEDIF().В ячейке B7 Excel она сработает. автоматически присвоился для
1. Разница в днях («d»)
Знакомимся с формататми,или в английской версии вписать в ячейку
Преобразует дату в числовомЧИСТРАБДНИ
Excel 2013 и всех предыдущий месяц -
с вышеуказанным значениемРезультат1: сравниваются конечная дата25 месяцев 01.03.2007 1 день). ИзбегайтеЕсли Вам требуется рассчитать сам присвоил текущийФункция РАЗНДАТ поддерживает несколько ячейки A3. Не уточняем в каких Excel: с клавиатуры -
формате в год.Возвращает количество полных рабочих последующих версиях.
февраль, а в аргумента. Формула может
5 (дней), т.к. 01.03.2009 и модифицированнаяФормула может быть заменена
Результат: использования функции с стаж (страховой) в год (сейчас 2015-ый)
параметров: сложно догадаться, чтобы в начале может=DATEDIF(A1;A2;»y»)&» y. «&DATEDIF(A1;A2;»ym»)&» m. и она сработает!ДОЛЯГОДА дней между двумяФункция 2015г. в феврале быть заменена альтернативным сравниваются конечная дата начальная дата 01.02. альтернативным выражением:28 (дней)
этим аргументом. Альтернативная годах, месяцах, днях, по умолчанию. ЭтоПараметр посчитать разницу в быть «0000». Почтовый «&DATEDIF(A1;A2;»md»)&» d.»
2. Разница в полных месяцах («m»)
Синтаксис функции следующий:Возвращает долю года, которую датами.
Описание было 28 дней). выражением:
06.03.2009 и модифицированная2009
=12*(ГОД(B2)-ГОД(A2))-(МЕСЯЦ(A2)-МЕСЯЦ(B2))-(ДЕНЬ(B2)Пример3:
формула приведена ниже. то, пожалуйста, воспользуйтесь
видно при отображенииОписание датах в Excel индекс, к примеру.HoBU4OK=РАЗНДАТ(Начальная_дата; Конечная_дата; Способ_измерения)
составляет количество днейЧИСТРАБДНИ.МЕЖДДАТА
После этого отнимает=ЕСЛИ(ДЕНЬ(A2)>ДЕНЬ(B2);
начальная дата 01.(год начальной даты
Внимание
начальная_дата 28.02.2008, конечная_дата»yd» расчетами выполненными в содержимого ячеек в»d» нужно от новейшейChe79
: Добрый день!
С первыми двумя аргументами между начальной иВозвращает количество полных рабочихВозвращает заданную дату в день начала иДЕНЬ(КОНМЕСЯЦА(ДАТАМЕС(B2;-1);0))-ДЕНЬ(A2)+ДЕНЬ(B2);032009 заменяется годом конечной: В справке MS EXCEL 01.03.2008разница в днях без статье Расчет страхового (трудового)
3. Разница в полных годах («y»)
строке формул. ОбратитеКоличество полных дней даты отнять старшую
: Здравствуйте,Нашел в готовых все более-менее понятно
конечной датами. дней в интервале
числовом формате. прибавляет день конечнойДЕНЬ(B2)-ДЕНЬ(A2))
(год и месяц даты, т.к. 01.02
(см. раздел ВычислениеРезультат: учета лет
стажа в MS внимание, как изначально
»m»
4. Разница в полных месяцах без учета лет («ym»)
дату. В ячейкеесли правильно понял, решениях интересную формулу, — это ячейкиВажно:
между двумя датами,РАЗНДАТ даты =ДЕНЬ(КОНМЕСЯЦА(ДАТАМЕС(B6;-1);0))-ДЕНЬ(A6)+ДЕНЬ(B6), т.е.
Данная формула лишь эквивалетное начальной даты заменяется меньше чем 01.03) возраста) имеется кривая2 (дня), т.к.ВНИМАНИЕ! Функция для EXCEL. вводилось значение вКоличество полных месяцев B1 введите формулу:=A3-A1.
возможно, так? но она не со стартовой и
Вычисляемые результаты формул и руководствуясь параметрами, указывающимиВычисляет количество дней, месяцев 28-30+16=14. На наш (в большинстве случаев) годом и месяцемПример2: формула для вычисления 2008 год - некоторых версий EXCELФункции РАЗНДАТ() нет в справке A7.
»y» Соответственно мы получаем200?’200px’:»+(this.scrollHeight+5)+’px’);»>=ЕСЛИ(РАЗНДАТ(A1;B1;»y») действует на отображение конечной датами. А некоторые функции листа выходные дни и или лет между взгляд, между датами выражение для РАЗНДАТ() конечной даты, т.к.
начальная_дата 01.04.2007, конечная_дата количества месяце между
високосный
возвращает ошибочное значение. EXCEL2007 и вНа чистом листе вКоличество полных лет количество дней между
5. Разница в днях без учета месяцев и лет («md»)
или кладите файл кол-ва дней ДО самый интересный аргумент, Excel могут несколько их количество. двумя датами. Эта все же 1 полный с параметром md.
01 меньше чем 01.03.2009 2-мя датами:
Эта формула может быть Избегайте использования функции Мастере функций ( ячейки А1:B1 введите»ym» этими двумя датами.Дата и время в начала события (не конечно, последний - отличаться на компьютерахТДАТА функция полезна в
месяц и все О корректности этой 06)
Результат:=(ГОД(ТДАТА())-ГОД(A3))*12+МЕСЯЦ(ТДАТА())-МЕСЯЦ(A3) заменена простым выражением с этим аргументом.SHIFT+F3 01.01.1900, а вКоличество полных месяцев без Excel – это находи отрицательные значения)
он определяет, каким под управлением WindowsВозвращает текущую дату и
формулах расчета возраста. дни марта, т.е формуле читайте вПример2:11 (месяцев), т.к.Если вместо функции ТДАТА() - =ЦЕЛОЕ(B2)-ЦЕЛОЕ(A2). Функция ЦЕЛОЕ()Ниже приведено подробное описание
), но она работает, ячейках A2:B2 вводим
учета летТеперь мы научимся вычислять числа сформатированные специальным
Подскажите как ее
именно образом и с архитектурой x86 время в числовом
ДАТАЗНАЧ 16 дней, а разделе «Еще разначальная_дата 28.02.2007, конечная_дата сравниваются конечная дата текущая дата использовать округляет значение до
всех 6 значений хотя и не 01.01.1901. Теперь меняем»md» возраст по дате
образом. Датой является
доработать?
в каких единицах
или x86-64 и формате.Преобразует дату из текстового не 14! Эта о кривизне РАЗНДАТ()» 28.03.2009 01.03.2009 и модифицированная дату 31.10.1961, а меньшего целого и
6. Разница в днях без учета лет («yd»)
аргумента без огрех. формат ячеек наКоличество дней без учета рождения: целая часть числа,200?’200px’:»+(this.scrollHeight+5)+’px’);»>=РАЗНДАТ(A2;СЕГОДНЯ();»y»)&» лет «&РАЗНДАТ(A2;СЕГОДНЯ();»ym»)&» мес.
будет измеряться интервал компьютерах под управлениемСЕКУНДЫ
формата в числовой. ошибка проявляется, когда
ниже.
Результат2:
начальная дата 01.04.
Еще раз о кривизне РАЗНДАТ()
в А3 ввести 01.11.1962, использована для тогоспособ_измеренияРАЗНДАТ(начальная_дата; конечная_дата; способ_измерения) «числовой» в выделенном месяцев и летНа новый лист в а время (часы «&РАЗНДАТ(A2;СЕГОДНЯ();»md»)&» дн.»
между начальной и Windows RT сПреобразует дату в числовомДЕНЬ в предыдущем месяце относительноФормула =РАЗНДАТ(A2;B2;»yd») вернет количество0, т.к. сравниваются2008 то формула вернет случая, если исходные, а также альтернативныхАргумент начальная_дата должна быть диапазоне B1:B2. Для»yd» ячейки A1:A3 введите и минуты) –Вроде все правильно конечной датами. Этот архитектурой ARM. Подробнее формате в секунды.Преобразует дату в числовом конечной даты, дней дней между двумя конечная дата 28.03.2009(год начальной даты 13, хотя фактически даты введены вместе формул (функцию РАЗНДАТ() раньше аргумента конечная_дата. этого можно нажатьКоличество дней без учета даты: 18.04.1985; 17.08.1977; это дробная часть. сделал?! параметр может принимать
об этих различиях.ВРЕМЯ формате в день меньше, чем дней
датами без учета
и модифицированная начальная заменяется годом конечной прошло 12 месяцев с временем суток можно заменить другимиАргумент комбинацию клавиш CTRL+SHIFT+1. лет 08.12.1992По умолчанию число 1_Boroda_ следующие значения:
excel2.ru
Функции даты и времени (справка)
Для вычислений длительностей интерваловВозвращает заданное время в месяца. начальной даты. Как
лет. Использовать ее дата 28. даты за вычетом и 1 день (РАЗНДАТ() игнорирует время, формулами (правда достаточноспособ_измеренияB1 теперь содержит числоПроиллюстрируем пример использования несколькихВ ячейки B1:B3 проставьте соответствует дате 01: На этот раз
»y» |
дат в Excel |
числовом формате. |
ДНИ выйти из этой |
не рекомендуется по |
032009 1 года, т.к. (ноябрь и декабрь т.е. дробную часть громоздкими). Это сделано |
определяет, как и |
1, а B2 параметров: |
текущею дату. |
января 1900 года. даразница в полных годах |
есть функция |
ВРЕМЗНАЧВозвращает количество дней между |
ситуации? |
причинам, изложенным в(год и месяц 01.04 больше чем |
в 1961г. + |
числа, см. статью в файле примера). в каких единицах – 367. ТоВнимание! Чтобы функция:=РАЗНДАТ() работала |
Теперь нужно воспользоваться функцией |
То есть каждаяДержите»m»РАЗНДАТПреобразует время из текстового двумя датами. |
Модифицируем формулу для расчета |
предыдущем пункте. начальной даты заменяется |
01.03) |
10 месяцев в Как Excel хранитВ файле примера значение |
будет измеряться интервал |
есть прошел один без ошибок, следите |
по преобразованию количества |
дата – это200?’200px’:»+(this.scrollHeight+5)+’px’);»>=РАЗНДАТ(МИН(A2;СЕГОДНЯ());МАКС(A2;СЕГОДНЯ());»y»)&» лет «&РАЗНДАТ(МИН(A2;СЕГОДНЯ());МАКС(A2;СЕГОДНЯ());»ym»)&» мес. |
в полных месяцах |
, в английской версии формата в числовой.ДНЕЙ360 |
дней разницы без |
Результат, возвращаемый формулой =РАЗНДАТ(A2;B2;»yd») годом и месяцемВся эта вакханалия нужна, 1962г.). дату и время). аргумента начальная_дата помещена |
между начальной и конечной |
високосный год (366 за тем, чтобы дней в количество |
количество дней прошедших |
«&РАЗНДАТ(МИН(A2;СЕГОДНЯ());МАКС(A2;СЕГОДНЯ());»md»)&» дн.»»d» |
- |
СЕГОДНЯВычисляет количество дней между |
учета месяцев и |
зависит от версии конечной даты) |
например, для подсчета |
Формула =РАЗНДАТ(A2;B2;»y») вернет количествоПримечание |
в ячейке |
датами. Этот аргумент дней) и 1 начальная дата была |
лет. Для этого |
от 01.01.1900. НаHoBU4OKв полных дняхDATEDIFВозвращает текущую дату в |
двумя датами на |
лет: EXCEL.Пример3: сколько полных дней, полных лет между |
: Если интересуют только |
А2 может принимать следующие день. старше конечной даты. вручную введите в данном уроке детально: Спасибо, работает!»yd» |
. |
числовом формате. основе 360-дневного года. |
=ЕСЛИ(ДЕНЬ(A18)>ДЕНЬ(B18);ЕСЛИ((ДЕНЬ(КОНМЕСЯЦА(ДАТАМЕС(B18;-1);0))-ДЕНЬ(A18)) |
Формула может быть замененаначальная_дата 28.02.2009, конечная_дата месяцев и лет двумя датами. |
рабочие дни, то, а значение аргумента значения:Способ отображения даты можноЦелью данного урока является диапазон C1:C3 следующее рассмотрим даты, аpalleotразница в днях сНюанс в том, чтоДЕНЬНЕДДАТАМЕС
support.office.com
Вычисление возраста или стажа функцией РАЗНДАТ (DATEDIF)
При применении новой функции альтернативным выражением: 01.03.2009 прошло с определеннойПример1: количество рабочих дней конечная_дата – вЗначение
задать с помощью пример математических операций значение: =РАЗНДАТ(A1;B1;»y»). на следующих уроках: Добрый день Уважаемые начала года без Вы не найдетеПреобразует дату в числовомВозвращает дату в числовом необходимо учитывать, что=ЕСЛИ(ДАТА(ГОД(B2);МЕСЯЦ(A2);ДЕНЬ(A2))>B2;Результат3: даты до сегодняшнегоначальная_дата 01.02.2007, конечная_дата между двумя датами ячейкеОписание диалогового окна «Формат с датами. ТакТаким образом, применение функции – время. форумчане! учета лет эту функцию в формате в день формате, отстоящую на разница в дняхB2-ДАТА(ГОД(B2)-1;МЕСЯЦ(A2);ДЕНЬ(A2));4 (дня) -
дня. Подробнее читайте
01.03.2009
можно посчитать поВ2»d» ячеек». Для его же, мы убедимся, позволило нам точноТак как дата являетсяПодскажите пожалуйста, возможно»md» списке Мастера функций, недели. заданное число месяцев будет одинаковой дляB2-ДАТА(ГОД(B2);МЕСЯЦ(A2);ДЕНЬ(A2))) совершенно непонятный и
в одноименной статье | Результат: |
формуле =ЧИСТРАБДНИ(B2;A2) | . |
разница в днях | вызова нажмите: CTRL+1. |
что для Excel | вычислить возраст по числом, значит можно ли при использовании |
разница в днях без | нажав кнопкуНОМНЕДЕЛИ вперед или назад |
нескольких начальных дат | Найдем разницу дат 16.03.2015 НЕПРАВИЛЬНЫЙ результат. Ответ |
Сколько лет, месяцев,
2 (года)Формула =РАЗНДАТ(A2;B2;»m») вернет количествоФормула =РАЗНДАТ(A2;B2;»d») вернет простую»m» На закладке «Число» тип данных дата дате рождения в проводить с ним
функции «РАЗНДАТ» при учета месяцев и
fxПреобразует дату в числовом от начальной даты. (см. рисунок выше, и 30.01.15. Функция
должен быть =1. дней прошло с
Пример2: полных месяцев между
planetaexcel.ru
Отрицательный результат в формуле РАЗНДАТ (Формулы/Formulas)
разницу в дняхразница в полных месяцах
выберите в списке является числом. Excel. математические вычислительные и сопоставлении разницы лет лет- она является
формате в число,КОНМЕСЯЦА
даты 28-31.01.2015). В РАЗНДАТ() с параметрами
Более того, результат конкретной даты.
начальная_дата 01.04.2007, конечная_дата двумя датами. между двумя датами.
»y»
«Числовые форматы» -Заполните таблицу датами, так
Внимание! Чтобы перевести дни расчетные операции. Посчитать
excelworld.ru
Функция «РАЗНДАТ» или 5 больше 10 (Формулы/Formulas)
(до 10 лет)»ym» недокументированной возможностью Excel.
которое указывает, наВозвращает дату в числовом остальных случаях формулы md и ym вычисления зависит от
Формула может быть заменена 01.03.2009Пример1:Пример1: разница в полных годах «Дата». В разделе как показано на
в года не количество дней междусделать так, чтобыразница в полных месяцах
Точнее говоря, найти
какую неделю года формате для последнего
эквивалентны. Какую формулу подсчитает, что разница версии EXCEL. альтернативным выражением:
Результат:начальная_дата 01.02.2007, конечная_датаначальная_дата 25.02.2007, конечная_дата 26.02.2007»ym» «Тип» отображаются самые
рисунке: достаточно формулы: =(B1-A1)/365.
двумя датами Excel первая цифра была
без учета лет
описание этой функции
excelworld.ru
Как вычислить дату в Excel
приходится дата. дня месяца, отстоящего применять? Это решать составляет 1 месяцВерсия EXCEL 2007 с=ОСТАТ(C7;12)1 (год) 01.03.2007
Результат: разница в полных месяцах популярные форматы дляРазные способы ввода дат. Более того даже не составляет особых «0» к примеруНапример: и ее аргументовРАБДЕНЬ вперед или назад
Как в Excel посчитать дни между датами?
пользователю в зависимости и 14 дней. SP3:В ячейкеПодробнее читайте в статьеРезультат:1 (день). без учета лет отображения дат. В столбце А если мы знаем проблем. Для наглядного разница между 2000
- Т.е. при желании подсчитать можно только вВозвращает дату в числовом на заданное число
- от условия задачи. Так ли этоРезультат – 143 дня!
- С7 Полный возраст или
1 (месяц)Этот пример показыват, что»md»Скачать примеры вычисления даты – способ ввода, что 1 сутки примера сначала выполним и 2005 гг. и вывести, например, полной версии англоязычной формате, отстоящую вперед месяцев.Чтобы просмотреть более подробные
на самом деле?
Вычисление возраста по дате рождения в Excel
Больше чем днейдолжна содержаться разница стаж.
- Пример2: при подсчете стажаразница в днях без в Excel
- а в столбце = 0,0027397260273973 года,
- сложение, а потом была 05 а ваш стаж в справки, поскольку на или назад наЧАС сведения о функции,
Имея формулу, эквивалентную РАЗНДАТ(), можно в месяце! в полных месяцахФормула может быть замененаначальная_дата 01.03.2007, конечная_дата 31.03.2007
необходимо использовать функцию учета месяцев иЧитайте также: Функции для B – результат то формула:=(B1-A1)*0,0027397260273973 так вычитание дат. Для не 5. виде «3 г. самом деле она заданное количество рабочих
Преобразует дату в числовом щелкните ее название понять ход вычисления.Версия EXCEL 2007: (см. п.2). альтернативным выражением:Результат: РАЗНДАТ() с осторожностью. лет работы с датами
отображения. же не даст
этого: | а то эксель |
4 мес. 12 | оставлена для совместимости |
дней. | формате в часы. |
в первом столбце. | Очевидно, что в |
Разница между 28.02.2009 и | Формула =РАЗНДАТ(A2;B2;»md») вернет количество=ЕСЛИ(ДАТА(ГОД(B2);МЕСЯЦ(A2);ДЕНЬ(A2)) ГОД(B2)-ГОД(A2);ГОД(B2)-ГОД(A2)-1) |
0 | Очевидно, что еслиВНИМАНИЕ! Функция для |
в Excel | Обратите внимание, что в точного результата. |
На чистом листе в считает, что 10
дн.», необходимо ввести со старыми версиямиРАБДЕНЬ.МЕЖДНОМНЕДЕЛИ.ISOПримечание:
Ввод даты в ячейку Excel
нашем случае количество 01.03.2009 – 4 дней между двумяФормула =РАЗНДАТ(A2;B2;»ym») вернет количествоПри расчете стажа, считается, сотрудник работал 25 некоторых версий EXCEL
На следующем уроке мы формате ячеек поДни в года наиболее
ячейку А1 введите лет меньше чем в ячейку следующую Excel и LotusВозвращает числовое значение даты,Возвращает номер недели по
Маркер версии обозначает версию полных месяцев между дня! датами без учета полных месяцев между что сотрудник отработавший и 26 февраля, возвращает ошибочное значение, на готовых примерах умолчанию «Общий», даты
точно преобразует функция:=РАЗНДАТ(). текущею дату нажав 5 пример приложен. формулу: 1-2-3. Однако, несмотря предшествующей заданному количеству ISO для заданной Excel, в которой датами = 1,Причем в EXCEL 2003
Вычисление даты Excel
месяцев и лет. двумя датами без все дни месяца то отработал он если день начальной будем работать со также как и Английская версия =DATEDIF(). CTRL+;.Заранее спасибо!
=РАЗНДАТ(A1;A2;»y»)&» г. «&РАЗНДАТ(A1;A2;»ym»)&» мес. на то, что рабочих дней или даты. она впервые появилась. т.е. весь февраль. с SP3 формула
Использовать функцию РАЗНДАТ() учета лет (см. — отработал 1 2 дня, а даты больше дня временем и периодами число выравниваются по Вы не найдетеВ ячейке A2 введитеpabchek «&РАЗНДАТ(A1;A2;»md»)&» дн.» эту функцию не
следующей за ними,МИНУТЫ
В более ранних Для вычисления дней, возвращает верный результат
с этим аргументом примеры ниже). полный месяц. Функция РАЗНДАТ() так не 1. То конечной даты (например,
exceltable.com
суток.
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 Обязательный |
Дата окончания периода. |
||||||||||||||
Единица |
Тип возвращаемой информации, где:
|
Замечания
-
Даты хранятся в виде последовательных чисел, что позволяет использовать их в вычислениях. По умолчанию дате 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» результатом может быть отрицательное число, нуль или неверное значение. Если вы пытаетесь вычислить оставшиеся дни после последнего полного месяца, вот как можно это сделать:
Эта формула вычитает первый день окончания месяца (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 (по категориям)
Рекомендации, позволяющие избежать появления неработающих формул
Нужна дополнительная помощь?
ТРЕНИНГИ
Быстрый старт
Расширенный Excel
Мастер Формул
Прогнозирование
Визуализация
Макросы на VBA
КНИГИ
Готовые решения
Мастер Формул
Скульптор данных
ВИДЕОУРОКИ
Бизнес-анализ
Выпадающие списки
Даты и время
Диаграммы
Диапазоны
Дубликаты
Защита данных
Интернет, email
Книги, листы
Макросы
Сводные таблицы
Текст
Форматирование
Функции
Всякое
Коротко
Подробно
Версии
Вопрос-Ответ
Скачать
Купить
ПРОЕКТЫ
ОНЛАЙН-КУРСЫ
ФОРУМ
Excel
Работа
PLEX
© Николай Павлов, Planetaexcel, 2006-2022
info@planetaexcel.ru
Использование любых материалов сайта допускается строго с указанием прямой ссылки на источник, упоминанием названия сайта, имени автора и неизменности исходного текста и иллюстраций.
Техническая поддержка сайта
ООО «Планета Эксел» ИНН 7735603520 ОГРН 1147746834949 |
ИП Павлов Николай Владимирович ИНН 633015842586 ОГРНИП 310633031600071 |
Для вычислений длительности временных интервалов удобней всего использовать недокументированную функцию
РАЗНДАТ(
)
, английский вариант DATEDIF().
Если Вам требуется рассчитать стаж (страховой) в годах, месяцах, днях, то, пожалуйста, воспользуйтесь расчетами выполненными в статье
Расчет страхового (трудового) стажа в MS EXCEL
.
Функции
РАЗНДАТ(
)
нет в справке EXCEL2007 и в
Мастере функций
(
SHIFT
+
F
3
), но она работает, хотя и не без огрех.
Синтаксис функции:
РАЗНДАТ(начальная_дата; конечная_дата; способ_измерения)
Аргумент
начальная_дата
должна быть раньше аргумента
конечная_дата
.
Аргумент
способ_измерения
определяет, как и в каких единицах будет измеряться интервал между начальной и конечной датами. Этот аргумент может принимать следующие значения:
|
|
«d» |
разница в днях |
«m» |
разница в полных месяцах |
«y» |
разница в полных годах |
«ym» |
разница в полных месяцах без учета лет |
«md» |
разница в днях без учета месяцев и лет ВНИМАНИЕ! Функция для некоторых версий EXCEL возвращает ошибочное значение, если день начальной даты больше дня конечной даты (например, в EXCEL 2007 при сравнении дат 28.02.2009 и 01.03.2009 результат будет 4 дня, а не 1 день). Избегайте использования функции с этим аргументом. Альтернативная формула приведена ниже. |
«yd» |
разница в днях без учета лет ВНИМАНИЕ! Функция для некоторых версий EXCEL возвращает ошибочное значение. Избегайте использования функции с этим аргументом. |
Ниже приведено подробное описание всех 6 значений аргумента
способ_измерения
, а также альтернативных формул (функцию
РАЗНДАТ()
можно заменить другими формулами (правда достаточно громоздкими). Это сделано в
файле примера
).
В файле примера значение аргумента
начальная_дата
помещена в ячейке
А2
, а значение аргумента
конечная_дата
– в ячейке
В2
.
1. Разница в днях («d»)
Формула
=РАЗНДАТ(A2;B2;»d»)
вернет простую разницу в днях между двумя датами.
Пример1:
начальная_дата
25.02.2007,
конечная_дата
26.02.2007
Результат:
1 (день).
Этот пример показыват, что при подсчете стажа необходимо использовать функцию
РАЗНДАТ()
с осторожностью. Очевидно, что если сотрудник работал 25 и 26 февраля, то отработал он 2 дня, а не 1. То же относится и к расчету полных месяцев (см. ниже).
Пример2:
начальная_дата
01.02.2007,
конечная_дата
01.03.2007
Результат:
28 (дней)
Пример3:
начальная_дата
28.02.2008,
конечная_дата
01.03.2008
Результат:
2 (дня), т.к. 2008 год — високосный
Эта формула может быть заменена простым выражением
=ЦЕЛОЕ(B2)-ЦЕЛОЕ(A2)
. Функция
ЦЕЛОЕ()
округляет значение до меньшего целого и использована для того случая, если исходные даты введены вместе с временем суток (
РАЗНДАТ()
игнорирует время, т.е. дробную часть числа, см. статью
Как Excel хранит дату и время
).
Примечание
: Если интересуют только рабочие дни, то к
оличество рабочих дней
между двумя датами можно посчитать по формуле
=ЧИСТРАБДНИ(B2;A2)
2. Разница в полных месяцах («m»)
Формула
=РАЗНДАТ(A2;B2;»m»)
вернет количество полных месяцев между двумя датами.
Пример1:
начальная_дата
01.02.2007,
конечная_дата
01.03.2007
Результат:
1 (месяц)
Пример2:
начальная_дата
01.03.2007,
конечная_дата
31.03.2007
Результат:
0
При расчете стажа, считается, что сотрудник отработавший все дни месяца — отработал 1 полный месяц. Функция
РАЗНДАТ()
так не считает!
Пример3:
начальная_дата
01.02.2007,
конечная_дата
01.03.2009
Результат:
25 месяцев
Формула может быть заменена альтернативным выражением:
=12*(ГОД(B2)-ГОД(A2))-(МЕСЯЦ(A2)-МЕСЯЦ(B2))-(ДЕНЬ(B2)<ДЕНЬ(A2))
Внимание
: В справке MS EXCEL (см. раздел Вычисление возраста) имеется кривая формула для вычисления количества месяце между 2-мя датами:
=(ГОД(ТДАТА())-ГОД(A3))*12+МЕСЯЦ(ТДАТА())-МЕСЯЦ(A3)
Если вместо функции ТДАТА() — текущая дата использовать дату 31.10.1961, а в А3 ввести 01.11.1962, то формула вернет 13, хотя фактически прошло 12 месяцев и 1 день (ноябрь и декабрь в 1961г. + 10 месяцев в 1962г.).
3. Разница в полных годах («y»)
Формула
=РАЗНДАТ(A2;B2;»y»)
вернет количество полных лет между двумя датами.
Пример1:
начальная_дата
01.02.2007,
конечная_дата
01.03.2009
Результат:
2 (года)
Пример2:
начальная_дата
01.04.2007,
конечная_дата
01.03.2009
Результат:
1 (год)
Подробнее читайте в статье
Полный возраст или стаж
.
Формула может быть заменена альтернативным выражением:
=ЕСЛИ(ДАТА(ГОД(B2);МЕСЯЦ(A2);ДЕНЬ(A2))<=B2; ГОД(B2)-ГОД(A2);ГОД(B2)-ГОД(A2)-1)
4. Разница в полных месяцах без учета лет («ym»)
Формула
=РАЗНДАТ(A2;B2;»ym»)
вернет количество полных месяцев между двумя датами без учета лет (см. примеры ниже).
Пример1:
начальная_дата
01.02.2007,
конечная_дата
01.03.2009
Результат:
1 (месяц), т.к. сравниваются конечная дата 01.03.2009 и модифицированная начальная дата 01.02.
2009
(год начальной даты заменяется годом конечной даты, т.к. 01.02
меньше
чем 01.03)
Пример2:
начальная_дата
01.04.2007,
конечная_дата
01.03.2009
Результат:
11 (месяцев), т.к. сравниваются конечная дата 01.03.2009 и модифицированная начальная дата 01.04.
2008
(год начальной даты заменяется годом конечной даты
за вычетом 1 года
, т.к. 01.04
больше
чем 01.03)
Вся эта вакханалия нужна, например, для подсчета сколько полных дней, месяцев и лет прошло с определенной даты до сегодняшнего дня. Подробнее читайте в одноименной статье
Сколько лет, месяцев, дней прошло с конкретной даты
.
Формула может быть заменена альтернативным выражением:
=ОСТАТ(C7;12)
В ячейке
С7
должна содержаться разница в полных месяцах (см. п.2).
5. Разница в днях без учета месяцев и лет («md»)
Формула
=РАЗНДАТ(A2;B2;»md»)
вернет количество дней между двумя датами без учета месяцев и лет. Использовать функцию
РАЗНДАТ()
с этим аргументом не рекомендуется (см. примеры ниже).
Пример1:
начальная_дата
01.02.2007,
конечная_дата
06.03.2009
Результат1:
5 (дней), т.к. сравниваются конечная дата 06.03.2009 и модифицированная начальная дата 01.
03
.
2009
(год и месяц начальной даты заменяется годом и месяцем конечной даты, т.к. 01
меньше
чем 06)
Пример2:
начальная_дата
28.02.2007,
конечная_дата
28.03.2009
Результат2:
0, т.к. сравниваются конечная дата 28.03.2009 и модифицированная начальная дата 28.
03
.
2009
(год и месяц начальной даты заменяется годом и месяцем конечной даты)
Пример3:
начальная_дата
28.02.2009,
конечная_дата
01.03.2009
Результат3:
4 (дня) — совершенно непонятный и НЕПРАВИЛЬНЫЙ результат. Ответ должен быть =1. Более того, результат вычисления зависит от версии EXCEL.
Версия EXCEL 2007 с SP3:
Результат – 143 дня! Больше чем дней в месяце!
Версия EXCEL 2007:
Разница между 28.02.2009 и 01.03.2009 – 4 дня!
Причем в EXCEL 2003 с SP3 формула возвращает верный результат 1 день. Для значений 31.12.2009 и 01.02.2010 результат вообще отрицательный (-2 дня)!
Не советую использовать формулу с вышеуказанным значением аргумента. Формула может быть заменена альтернативным выражением:
=ЕСЛИ(ДЕНЬ(A2)>ДЕНЬ(B2); ДЕНЬ(КОНМЕСЯЦА(ДАТАМЕС(B2;-1);0))-ДЕНЬ(A2)+ДЕНЬ(B2); ДЕНЬ(B2)-ДЕНЬ(A2))
Данная формула лишь эквивалетное (в большинстве случаев) выражение для
РАЗНДАТ()
с параметром md. О корректности этой формуле читайте в разделе «Еще раз о кривизне РАЗНДАТ()» ниже.
6. Разница в днях без учета лет («yd»)
Формула
=РАЗНДАТ(A2;B2;»yd»)
вернет количество дней между двумя датами без учета лет. Использовать ее не рекомендуется по причинам, изложенным в предыдущем пункте.
Результат, возвращаемый формулой
=РАЗНДАТ(A2;B2;»yd»)
зависит от версии EXCEL.
Формула может быть заменена альтернативным выражением:
=ЕСЛИ(ДАТА(ГОД(B2);МЕСЯЦ(A2);ДЕНЬ(A2))>B2; B2-ДАТА(ГОД(B2)-1;МЕСЯЦ(A2);ДЕНЬ(A2)); B2-ДАТА(ГОД(B2);МЕСЯЦ(A2);ДЕНЬ(A2)))
Еще раз о кривизне РАЗНДАТ()
Найдем разницу дат 16.03.2015 и 30.01.15. Функция
РАЗНДАТ()
с параметрами md и ym подсчитает, что разница составляет 1 месяц и 14 дней. Так ли это на самом деле?
Имея формулу, эквивалентную
РАЗНДАТ()
, можно понять ход вычисления. Очевидно, что в нашем случае количество полных месяцев между датами = 1, т.е. весь февраль. Для вычисления дней, функция находит количество дней в предыдущем месяце относительно конечной даты, т.е. 28 (конечная дата принадлежит марту, предыдущий месяц — февраль, а в 2015г. в феврале было 28 дней). После этого отнимает день начала и прибавляет день конечной даты =
ДЕНЬ(КОНМЕСЯЦА(ДАТАМЕС(B6;-1);0))-ДЕНЬ(A6)+ДЕНЬ(B6)
, т.е. 28-30+16=14. На наш взгляд, между датами все же 1 полный месяц и все дни марта, т.е 16 дней, а не 14! Эта ошибка проявляется, когда в предыдущем месяце относительно конечной даты, дней меньше, чем дней начальной даты. Как выйти из этой ситуации?
Модифицируем формулу для расчета дней разницы без учета месяцев и лет:
=
ЕСЛИ(ДЕНЬ(A18)>ДЕНЬ(B18);ЕСЛИ((ДЕНЬ(КОНМЕСЯЦА(ДАТАМЕС(B18;-1);0))-ДЕНЬ(A18))<0;ДЕНЬ(B18);ДЕНЬ(КОНМЕСЯЦА(ДАТАМЕС(B18;-1);0))-ДЕНЬ(A18)+ДЕНЬ(B18));ДЕНЬ(B18)-ДЕНЬ(A18))
При применении новой функции необходимо учитывать, что разница в днях будет одинаковой для нескольких начальных дат (см. рисунок выше, даты 28-31.01.2015). В остальных случаях формулы эквивалентны. Какую формулу применять? Это решать пользователю в зависимости от условия задачи.