Різниця між двома датами: Функція Datedif

Вступ до функції DATEDIF

Функція DATEDIF обчислює різницю між двома датами в різних інтервалах, наприклад, кількість років, місяців або днів між датами. Ця функція доступна у всіх версіях Excel, принаймні з версії 5/95, але задокументована у файлі довідки тільки для Excel 2000. З якоїсь причини Microsoft вирішила не документувати цю функцію в інших версіях. DATEDIF розглядається як п'яний двоюрідний брат сімейства Формули. Excel знає, що він живе щасливим і корисним життям, але не буде говорити про це у ввічливій бесіді. Не плутайте функцію аркуша DATEDIF з функцією DateDiff VBA.

Синтаксис для DATEDIF такий:

= DATEDIF (дата1, дата2, інтервал)

Де:

Дата1 - перша дата,

Дата2 - друга дата,

Інтервал - це тип інтервалу для повернення.

Якщо Date1 пізніше Date2, DATEDIF повертає #NUM! помилка. Якщо Date1 або Date2 не є допустимою датою, DATEDIF поверне помилку #VALUE.

Значення інтервалу має бути одним з

Інтервал Значення Опис

m Місяці Повні календарні місяці між датами.

d Дні Кількість днів між датами.

y Роки Повний календарний рік між датами.

ym Місяці без урахування років Повні календарні місяці між датами, як якщо б вони були того ж року.

yd Дні без урахування років Повний календарні дні між датами, як якщо б вони були того ж року.

md Days, що виключають роки та місяці Повні календарні дні між датами, як якщо б вони були того ж місяця та того ж року.

Якщо інтервал не є одним із перелічених вище елементів, DATEDIF поверне помилку #NUM.

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

= DATEDIF (Date1, Date2, "m")

Якщо ви маєте інтервал у іншій комірці, на яку посилається формула, ця комірка не повинна мати лапки навколо інтервального рядка. Наприклад, з формулою

= DATEDIF (Дата1, Дата2, А1)

клітинка A1 повинна містити m не "m".

Пригнічення компонентів нульового значення

При звичайному використанні для розрахунку кількості років, місяців і днів між двома датами слід використовувати формулу, наприклад, де A1 - дата початку, а B1 - дата завершення.

= DATEDIF (A1, B1, "y") & "роки" & DATEDIF (A1, B1, "ym") & "місяці" & DATEDIF (A1, B1, "md")

& "дні"

Це поверне рядок, наприклад

12 років 8 місяців 14 днів

Однак, якщо кількість років і / або місяців дорівнює 0, ви отримаєте рядок, подібний до

0 років 0 місяців 14 днів

0 років 3 місяці 14 днів

Якщо ви хочете придушити значення 0, і повернути результат, такий як

8 місяців 14 днів

або

14 днів

де не відображаються 0-значні компоненти, використовуйте формулу, подібну до наведеної нижче.

= IF (DATEDIF (A1, B1, "y") = 0, "", DATEDIF (A1, B1, "y") & "роки") & IF (DATEDIF (A1, B1, "ym") = 0, " ",

DATEDIF (A1, B1, "ym") & "місяці") & DATEDIF (A1, B1, "md") & "дні"

У цьому вікні відображатимуться лише компоненти дати, значення яких перевищує 0. Значення дня буде завжди відображатися, але рік і / або значення місяця можуть бути припинені.

Приклади

Нижче наведено кілька прикладів функції DATEDIF.

Дата1: 1-січня-2007

Date2: 10-Jan-2007

Інтервал: d

Результат: 9

Пояснення:

Між цими двома датами існує 9, а не 10 календарних днів.

Дата1: 1-січня-2007

Дата2: 31 січня-2007

Інтервал: m

Результат: 0

Пояснення:

Існує 0 повних календарних місяців між двома датами.

Дата1: 1-січня-2007

Date2: 1-Feb-2007

Інтервал: m

Результат: 1

Пояснення:

Між двома датами є 1 повний місяць.

Дата1: 1-січня-2007

Date2: 28-Feb-2007

Інтервал: m

Результат: 1

Пояснення:

Між двома датами є 1 повний місяць.

Дата1: 1-січня-2007

Date2: 31-Dec-2007

Інтервал: d

Результат: 364

Пояснення:

Між цими датами існує 364 дні.

Дата1: 1-січня-2007

Дата2: 31 січня-2007

Інтервал: y

Результат: 0

Пояснення:

Між датами існує 0 років

Дата1: 1-січня-2007

Дата2: 1-липня-2008

Інтервал: d

Результат: 547

Пояснення:

Між цими датами існує 547 днів.

Дата1: 1-січня-2007

Дата2: 1-липня-2008

Інтервал: m

Результат: 18

Пояснення:

Між двома датами існує 18 місяців.

Дата1: 1-січня-2007

Дата2: 1-липня-2008

Інтервал: ym

Результат: 6

Пояснення:

Існує 6 місяців між двома датами, якщо дати вважаються такими ж роками. Рік, який він взяв з Date1, а не Date2. Це має значення, коли один рік - високосний рік. З 2007 року не високосний рік, 29-лютого не враховується. Див. DATEDIF і Leap Years нижче.

Дата1: 1-січня-2007

Дата2: 1-липня-2008

Інтервал: yd

Результат: 181

Пояснення:

Існує 181 день між датами, якщо дати вважаються такими ж роками. Рік, який він взяв з Date1, а не Date2. Це має значення, коли один рік - високосний рік. З 2007 року не високосний рік, 29-лютого не враховується. Див. DATEDIF і Leap Years нижче.

Дата1: 1-Jan-2008

Дата2: 1-липня-2009

Інтервал: yd

Результат: 182

Пояснення:

Існує 182 дні між датами, якщо дати вважаються такими ж роками. Цей результат 182 не 181, оскільки Date1 є високосним роком і, таким чином, вважається 29-лютого.

Дата1: 1-січня-2007

Дата2: 31 січня-2007

Інтервал: md

Результат: 30

Пояснення:

Існує 30 днів між 1-м і 31-м датами, коли місяць і роки обидві дати вважаються однаковими.

DATEDIF і високосні роки

При обчисленні інтервалів дат DATEDIF використовує рік Date1, а не Date2 при обчисленні інтервалів yd, ym і md. Наприклад,

= DATEDIF (Date1, Date2, "md")

повертає 28 для Date1 = 1-Feb-2007 і Date2 = 1-March-2009. Оскільки Date1 не є високосною, дата 29-лютого не враховується. Але та ж формула з Date1 = 1-Feb-2008 повертає 29, оскільки Date1 є високосним роком і тому дата 29-лютого враховується.

Розрахунок віку

Ви можете використовувати DATEDIF для обчислення віку людини. Наприклад, нижченаведена формула розраховує вік особи на поточну дату, коли дата народження є датою народження особи.

= DATEDIF (Дата народження, TODAY (), "y") & "років" & DATEDIF (Дата народження, TODAY (), "ym") & "місяці" & DATEDIF (Дата народження, TODAY (), "md") & "днів"

Попередня Стаття Наступна Стаття

Кращі Поради