Різниця між датами днями. Функція разндат() - обчислення різниці двох дат у днях, місяцях, роках у ms 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 потрібно визначати, скільки днів минуло між деякими датами. На щастя, програма має інструменти, які здатні вирішити це питання. Давайте з'ясуємо, якими способами можна порахувати різницю дат в Екселі.

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


Тепер всі дані, які будуть у виділених осередках, програма розпізнаватиме як дату.

Спосіб 1: просте обчислення

Найпростіше обчислити різницю днів між датами за допомогою звичайної формули.


Спосіб 2: функція РОЗНДАТ

Для обчислення різниці в датах можна також застосовувати спеціальну функцію РОЗНДАТ. Проблема в тому, що у списку Майстра функцій її немає, тому доведеться вводити формулу вручну. Її синтаксис виглядає так:

РОЗНДАТ(початкова_дата;кінцева_дата;одиниця)

«Одиниця»— це формат, у якому у виділений осередок виводитиметься результат. Від того, який символ буде підставлений в даний параметр, залежить, в яких одиницях повертатиметься результат:

  • "y" - повні роки;
  • "m" - повні місяці;
  • "d" - дні;
  • "YM" - різниця в місяцях;
  • «MD» - різниця в днях (місяці та роки не враховуються);
  • "YD" - різниця в днях (роки не враховуються).

Також слід звернути увагу, що, на відміну від способу із застосуванням простої формули, описаного вище, при використанні цієї функції на першому місці має бути початкова дата, а кінцева – на другому. Інакше розрахунки будуть некоректними.


Спосіб 3: обчислення кількостей робочих днів

В Екселі також є можливість провести обчислення робочих днів між двома датами, тобто, крім вихідних і святкових. Для цього використовується функція ЧИСТРАБНІ. На відміну від попереднього оператора, вона є у списку Майстра функцій. Синтаксис цієї функції наступний:

ЧИСТРАБДНІ(поч_дата;кон_дата;[свята])

У цій функції основні аргументи, такі, як і в оператора РОЗНДАТ- Початкова і кінцева дата. Крім того, є необов'язковий аргумент «Свята».

Замість нього слід підставляти дати святкових неробочих днів, якщо такі є за період, що охоплюється. Функція робить розрахунок всіх днів зазначеного діапазону, за винятком субот, неділі, а також тих днів, які додані користувачем в аргумент «Свята».


Після зазначених вище маніпуляцій у попередньо виділеному осередку відобразиться кількість робочих днів за вказаний період.

Як бачимо, Excel надає своїм користувачам досить зручний інструментарій для розрахунку кількості днів між двома датами. При цьому, якщо потрібно розрахувати просто різницю в днях, то оптимальним варіантом буде застосування простої формули віднімання, а не використання функції РОЗНДАТ. А от якщо потрібно, наприклад, підрахувати кількість робочих днів, то тут на допомогу прийде функція ЧИСТРАБДНІ. Тобто, як завжди, користувачеві слід визначитися з інструментом виконання після того, як він поставив конкретне завдання.

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

Різниця днями

У цьому прикладі Дата початку знаходиться в клітинці D9, а Дата закінчення - E9. Формула буде показано на F9. "D"повертає число повних днівміж двома датами.

Різниця у тижнях


У цьому прикладі Дата початку знаходиться в клітинці D13, а Дата закінчення - E13. "D" повертає кількість днів. Але зверніть увагу на те, що в кінці є /7 . Це ділить кількість днів на 7, тому що на тиждень є 7 днів. Зауважте, що цей результат також необхідно відформатувати як число. Натисніть клавіші CTRL + 1. Потім натисніть число _гт_ десяткових розрядів: 2.

Різниця у місяцях


У цьому прикладі Дата початку знаходиться в комірці D5, а Дата закінчення - в комірку "вниз". У формулі "м"повертає число повних місяцівміж двома днями.

Різниця у роках


У цьому прикладі Дата початку знаходиться в клітинці D2, а Дата закінчення - E2. "Y"

Обчислення віку у накопичених роках, місяцях та днях

1. Використовуйте РОЗНДАТ для пошуку загального числа років.


У цьому прикладі Дата початку знаходиться в клітинці D17, а Дата закінчення - E17. У формулі "y"повертає кількість повних років між двома днями

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.

Завантаження прикладів

Ви можете завантажити приклад книги з усіма прикладами, наведеними у цій статті. Ви можете підписатися на них або створити власні формули.

Інші розрахунки дати та часу

Розрахунок між сьогоднішньою та іншою датою

Як показано вище, функція РОЗНДАТ обчислює різницю між датою початку та кінцевою датою. Однак замість введення певних дат також можна використовувати функцію Today ()у формулі. Під час використання функції TODAY () Excel використовує поточну дату на комп'ютері. Майте на увазі, що при повторному відкритті файлу в майбутньому цей файл зміниться.


Розрахунок робочих днів зі святами чи без них

Використовуйте ЧИСТРАБДНІ. INTL, якщо потрібно визначити кількість робочих днів між двома датами. Крім того, ви можете також виключити вихідні та святкові дні.

Перш ніж розпочати, виконайте наведені нижче дії.Вирішіть, чи потрібно унеможливити дати свят. Якщо це так, введіть список свят в окрему область або на аркуш. Щодня свят поміщається в окремий осередок. Потім виділіть ці осередки, а потім виберіть формули _Гт_ присвоїти ім'я. Назвіть діапазон михолідайста натисніть кнопку ОК. Потім створіть формулу, виконавши наведені нижче дії.

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, михолідайс).

ПероЯкщо ви не бажаєте посилатися на ім'я діапазону свят, ви також можете ввести діапазон, наприклад D35: E:39. Крім того, ви можете запровадити кожне свято у формулі. Наприклад, якщо святкові дні – 1 січня та 2 із 2016, введіть їх наступним чином: = ЧИСТРАБДНІ. Між (D53, E53, 1, ("1/1/2016", "1/2/2016")). У Excel 2007 воно виглядатиме так: = ЧИСТРАБДНІ (D53, E53, ("1/1/2016", "1/2 . 2016"})

Розрахунок витраченого часу

Щоб обчислити витрачений час, можна відняти один раз від іншого. Спочатку введіть час початку в клітинці і час закінчення в іншій. Переконайтеся, що весь час, включаючи години, хвилини та пробіли, заповніть до полудня або PM. Ось що потрібно для цього зробити:

1. Введіть час початку та закінчення.


У цьому прикладі час початку знаходиться в комірці D80, а час закінчення - E80. Переконайтеся, що вводите годинник, хвилину та пробіли перед символами AM та PM.

2. Встановіть формат ч/PM.


Виберіть обидві дати та натисніть клавіші CTRL + 1 (або + 1 на комп'ютері Mac). Переконайтеся, що вибрано параметр користувальницькі _гт_ год/PMякщо він ще не встановлений.

3. віднімання двох значень.


В іншому осередку віднімете початковий осередок з осередку "час закінчення".

4. Введіть формат год.


Натисніть клавіші CTRL+1 (або +1 на Mac). Виберіть " користувальницькі _гт_", щоб виключити з нього результати "AM" та "PM".

На робочому аркуші Excel створено план завдань. В одній колонці вказані терміни виконання кожного завдання виконання. Щоб виділити кольором прострочені терміни поставлених завдань, нам потрібна точна різниця між датами в Excel. Для цього використовуватимемо умовне форматування з формулою РОЗНДАТ.

Як порахувати різницю між датами в Excel

Потрібно виділити кольором назви завдань, у яких терміни закінчуються вже через 7 днів. Приклад таблиці плану задач:


Фінальний ефект виділення закінчення термінів через 7 днів:


Виділено зеленим кольоромвсі завдання, які мають бути виконані через 7 днів. Якщо змінити значення в осередку D2 тоді буде виділено інші завдання.

Корисна порада! У осередку D2 можна використовувати функцію для отримання сьогоднішньої дати: =СЬОГОДНІ().



Формула різниця дат в Excel

Формула повертає різницю дат між сьогоднішньою та встановленою планом у днях. Для вирішення цієї задачі використовується функція РОЗНДАТ в Excel: де знайти цю формулу?

Цю функцію ви не знайдете у майстрі функцій і навіть на панелі «ФОРМУЛИ». Її завжди потрібно вводити вручну. Першим аргументом функції завжди має бути нова дата, а другим завжди – старша дата. Третій аргумент функції визначає одиницю виміру кількості, що повертає функція =РОЗНДАТ(). У разі це символ " d " – днів. Це означає, що функція повертає кількість днів. Далі слідує оператор<7. То есть формула проверяет, если функция возвращает число меньше чем 7, то формула возвращает значение ИСТИНА и к текущей ячейке применяется условное форматирование. Ссылки на ячейки в первом аргумент абсолютная (значение неизменяемое), а во втором аргументе – относительная, так как проверятся будут несколько ячеек в столбце C.

За необхідності можна до цього діапазону додати нове правило умовного форматування, яке попереджатиме нас про закінчення термінів за 2 тижні. Для цього потрібно додати нове правило умовного форматування для діапазону A2:A7 і лише трохи змінити формулу в новому правилі:


Колір форматування для другого правила можна встановити жовтий. До того самого діапазону повинні бути застосовані 2 правила умовного форматування. Щоб перевірити, виберіть інструмент: «ГОЛОВНА»-«Стилі»-«Умовне форматування»-«Управління правилами». Так як у нас спочатку виконується верхнє правило слід змінити їх порядок у вікні: «Диспетчер правил умовного форматування». Інакше всі виділені завдання матимуть жовте заливання осередків. Просто виділіть перше правило і натисніть кнопку вниз (CTRL+стрілка вниз), як показано на малюнку:


В результаті план попереджає нас спочатку за два тижні, а потім за тиждень до закінчення термінів виконання завдань:


Корисна порада! Якщо одному і тому ж діапазону присвоєно багато правил – дотримуйтеся ієрархію пріоритетів порядку їх виконання диспетчері управління правилами. Чим вище правило, тим вище його пріоритет виконання по відношенню до інших, розташованих нижче під ним.

Для обчислень тривалості часових інтервалів найзручніше використовувати недокументовану функцію РОЗНДАТ( ) , англійська версія DATEDIF().

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

Синтаксис функції:

РОЗНДАТ(початкова_дата; кінцева_дата; спосіб_вимірювання)

Аргумент початкова датамає бути раніше аргументу кінцева_дата.

Аргумент спосіб_вимірюваннявизначає, як і в яких одиницях вимірюватиметься інтервал між початковою та кінцевою датами. Цей аргумент може приймати такі значення:

Значення

Опис

різниця в днях

різниця у повних місяцях

різниця у повних роках

різниця у повних місяцях без урахування років

різниця в днях без урахування місяців та років
УВАГА! Функція для деяких версій EXCEL повертає помилкове значення, якщо день початкової дати більше дня кінцевої дати (наприклад, EXCEL 2007 при порівнянні дат 28.02.2009 і 01.03.2009 результат буде 4 дні, а не 1 день). Уникайте використання функції з цим аргументом. Альтернативна формула наведена нижче.

різниця у днях без урахування років
УВАГА! Функція деяких версій 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)

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 (див. розділ Обчислення віку) є крива формула для обчислення кількості місяця між двома датами:

=(РІК(ТДАТА())-РІК(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). В інших випадках формули еквівалентні. Яку формулу застосовувати? Це вирішувати користувачеві залежно від умови завдання.