Съдържание
В този урок ще намерите просто обяснение на функцията DATEDIF на Excel и няколко примера за формули, които показват как да сравнявате дати и да изчислявате разликата в дни, седмици, месеци или години.
През последните няколко седмици разгледахме почти всички аспекти на работата с дати и времена в Excel. Ако сте следили поредицата ни в блога, вече знаете как да вмъквате и форматирате дати в работните си листове, как да изчислявате дни от седмицата, седмици, месеци и години, както и да добавяте и изваждате дати.
В този урок ще се съсредоточим върху изчисляването на разликата в датите в Excel и ще научите различни начини за пресмятане на броя на дните, седмиците, месеците и годините между две дати.
Лесно намиране на разликата между две дати в Excel
Получете резултата като готова формула в години, месеци, седмици или дни
Прочетете повечеДобавяне и изваждане на дати с няколко кликвания
Делегиране на изграждането на формулите за дата и време на експерт
Прочетете повечеИзчисляване на възрастта в Excel в движение
И получете персонализирана формула
Прочетете повечеФункция DATEDIF на Excel - получаване на разлика в датите
Както подсказва името ѝ, функцията DATEDIF е предназначена за изчисляване на разликата между две дати.
DATEDIF е една от много малкото недокументирани функции в Excel и тъй като е "скрита", няма да я намерите в Формула таб, нито пък ще получите някаква подсказка за това кои аргументи да въведете, когато започнете да въвеждате името на функцията в лентата с формули. Ето защо е важно да знаете пълния синтаксис на Excel DATEDIF, за да можете да я използвате във формулите си.
Функция DATEDIF на Excel - синтаксис
Синтаксисът на функцията DATEDIF в Excel е следният:
DATEDIF(start_date, end_date, unit)Изискват се и трите аргумента:
Начална_дата - началната дата на периода, който искате да изчислите.
End_date - крайната дата на периода.
Единица - Единицата за време, която се използва при изчисляване на разликата между две дати. Чрез задаване на различни единици можете да накарате функцията DATEDIF да върне разликата в дни, месеци или години. Налични са общо 6 единици, които са описани в следващата таблица.
Единица | Значение | Обяснение |
Y | Години | Брой пълни години между началната и крайната дата. |
M | Месеци | Брой пълни месеци между датите. |
D | Дни | Брой дни между началната и крайната дата. |
MD | Дни без години и месеци | Разликата в датата в дни, без да се отчитат месеците и годините. |
YD | Дни без години | Разликата в датите в дни, без да се отчитат годините. |
YM | Месеци без дни и години | Разликата в датите в месеци, без да се отчитат дните и годините. |
Формула DATEDIF на Excel
За да получите разликата между две дати в Excel, основната ви задача е да предоставите началната и крайната дата на функцията DATEDIF. Това може да се направи по различни начини, при условие че Excel може да разбере и правилно да интерпретира предоставените дати.
Препратки към клетките
Най-лесният начин за създаване на формула DATEDIF в Excel е да въведете две валидни дати в отделни клетки и да се позовете на тези клетки. Например следната формула преброява броя на дните между датите в клетките A1 и B1:
=DATEDIF(A1, B1, "d")
Текстови низове
Excel разбира дати в много текстови формати, като например "1-Jan-2023", "1/1/2023", "1 януари 2023 г." и т.н. Датите като текстови низове, затворени в кавички, могат да бъдат въведени директно в аргументите на формула. Например така можете да изчислите броя на месеците между посочените дати:
=DATEDIF("1/1/2023", "12/31/2025", "m")
Серийни номера
Тъй като Microsoft Excel съхранява всяка дата като пореден номер, започвайки от 1 януари 1900 г., вие използвате числа, съответстващи на датите. Въпреки че се поддържа, този метод не е надежден, тъй като номерирането на датите се различава в различните компютърни системи. В системата на датите 1900 г. можете да използвате формулата по-долу, за да намерите броя на годините между две дати - 1 януари 2023 г. и 31 декември 2025 г:
=DATEDIF(44927, 46022, "y")
Резултати от други функции
За да разберете колко дни има между днешния ден и 20 май 2025 г., използвайте следната формула.
=DATEDIF(TODAY(), "5/20/2025", "d")
Забележка: Във формулите крайната дата винаги трябва да е по-голяма от началната, в противен случай функцията DATEDIF на Excel връща грешка #NUM!.
Надяваме се, че горната информация е била полезна за разбирането на основите. А сега нека видим как можете да използвате функцията DATEDIF на Excel, за да сравнявате дати в работните си листове и да връщате разликата.
Как да получите броя на дните между две дати в Excel
Ако сте наблюдавали внимателно аргументите на DATEDIF, сте забелязали, че съществуват 3 различни единици за броене на дните между датите. Коя от тях да използвате, зависи точно от вашите нужди.
Пример 1. Формула DATEDIF на Excel за изчисляване на разликата в датите в дни
Да предположим, че имате началната дата в клетка А2 и крайната дата в клетка В2 и искате Excel да върне разликата в датите в дни. Обикновена формула DATEDIF работи добре:
=DATEDIF(A2, B2, "d")
При условие че стойността в аргумента start_date е по-малка от тази в end_date. В случай че началната дата е по-голяма от крайната дата, функцията DATEDIF на Excel връща грешка #NUM, както е показано в ред 5:
Ако търсите формула, която може да върне разликата в дните като положително или отрицателно число, просто извадете едната дата директно от другата:
=B2-A2
Вижте Как да изваждаме дати в Excel за повече подробности и примери за формули.
Пример 2. Преброяване на дни в Excel, като се игнорират години
Да предположим, че имате два списъка с дати, които принадлежат към различни години, и искате да изчислите броя на дните между датите, сякаш са от една и съща година. За целта използвайте формулата DATEDIF с единица "YD":
=DATEDIF(A2, B2, "yd")
Ако искате функцията DATEDIF на Excel да пренебрегва не само годините, но и месеците, използвайте единицата "md". В този случай формулата ви ще изчислява дните между две дати, сякаш те са от един и същи месец и една и съща година:
=DATEDIF(A2, B2, "md")
Снимката на екрана по-долу демонстрира резултатите и сравняването ѝ с горната снимка може да помогне за по-доброто разбиране на разликата.
Съвет. За да получите броя на работни дни между две дати, използвайте функцията NETWORKDAYS или NETWORKDAYS.INTL.
Как да изчислим разликата в датите в седмици
Както вероятно сте забелязали, функцията DATEDIF на Excel не разполага със специална единица за изчисляване на разликата между датите в седмици. Има обаче лесен начин за заобикаляне.
За да разберете колко седмици има между две дати, можете да използвате функцията DATEDIF с единицата "D", за да върнете разликата в дните, и след това да разделите резултата на 7.
За да получите броя на пълни седмици между датите, обвийте формулата DATEDIF с функцията ROUNDDOWN, която винаги закръглява числото към нула:
=ROUNDDOWN((DATEDIF(A2, B2, "d") / 7), 0)
Където А2 е началната дата, а В2 е крайната дата на периода, който изчислявате.
Как да изчислите броя на месеците между две дати в Excel
Подобно на броенето на дни, функцията DATEDIF на Excel може да изчисли броя на месеците между две дати, които сте посочили. В зависимост от единицата, която сте посочили, формулата ще даде различни резултати.
Пример 1. Изчисляване на пълни месеци между две дати (DATEDIF)
За да преброите броя на целите месеци между датите, използвайте функцията DATEDIF с единица "M". Например следната формула сравнява датите в A2 (начална дата) и B2 (крайна дата) и връща разликата в месеци:
=DATEDIF(A2, B2, "m")
Забележка: За да може формулата DATEDIF да изчислява правилно месеците, крайната дата трябва винаги да е по-голяма от началната дата; в противен случай формулата връща грешка #NUM.
За да избегнете подобни грешки, можете да накарате Excel винаги да възприема по-стара дата като начална, а по-нова като крайна. За целта добавете прост логически тест:
=IF(B2>A2, DATEDIF(A2,B2, "m"), DATEDIF(B2,A2, "m")
Пример 2. Получаване на броя на месеците между две дати с игнориране на години (DATEDIF)
За да пресметнете броя на месеците между датите, сякаш са от една и съща година, въведете "YM" в аргумента за единица:
=DATEDIF(A2, B2, "ym")
Както виждате, тази формула също връща грешка в ред 6, където крайната дата е по-малка от началната дата. Ако вашият набор от данни може да съдържа такива дати, ще намерите решението в следващите примери.
Пример 3. Изчисляване на месеци между две дати (функция MONTH)
Алтернативен начин за изчисляване на броя на месеците между две дати в Excel е използването на функцията МЕСЕЦ, или по-точно на комбинация от функциите МЕСЕЦ и ГОДИНА:
=(ГОДИНА(B2) - ГОДИНА(A2))*12 + МЕСЕЦ(B2) - МЕСЕЦ(A2)
Разбира се, тази формула не е толкова прозрачна, колкото DATEDIF, и е необходимо време, за да се ориентирате в логиката ѝ. Но за разлика от функцията DATEDIF тя може да сравнява две дати и да връща разликата в месеците като положителна или отрицателна стойност:
Забележете, че формулата YEAR/MONTH няма проблем с изчисляването на месеците в ред 6, където началната дата е по-нова от крайната - сценарий, при който аналогичната формула DATEDIF се проваля.
Забележка: Резултатите, връщани от формулите DATEDIF и YEAR/MONTH, не винаги са идентични, тъй като работят на различни принципи. Функцията DATEDIF на Excel връща броя на пълни календарни месеци между датите, докато формулата YEAR/MONTH работи с числата на месеците.
Например в ред 7 на горната снимка формулата DATEDIF връща 0, тъй като между датите все още не е изтекъл пълен календарен месец, а формулата YEAR/MONTH връща 1, тъй като датите принадлежат на различни месеци.
Пример 4. Отчитане на месеци между 2 дати с игнориране на години (функция MONTH)
В случай че всички дати са от една и съща година или искате да изчислите месеците между датите, които пренебрегват годините, можете да използвате функцията MONTH, за да извлечете месеца от всяка дата и след това да извадите единия месец от другия:
=МЕСЕЦ(B2) - МЕСЕЦ(A2)
Тази формула работи подобно на Excel DATEDIF с единица "YM", както е показано на следната снимка на екрана:
Резултатите, получени от двете формули, обаче се различават с няколко реда:
- Ред 4: крайната дата е по-малка от началната дата и затова DATEDIF връща грешка, а MONTH-MONTH дава отрицателна стойност.
- Ред 6: датите са от различни месеци, но действителната разлика в датите е само един ден. DATEDIF връща 0, защото изчислява цели месеци между 2 дати. MONTH-MONTH връща 1, защото изважда числата на месеците едно от друго, без да взема предвид дните и годините.
Как да изчислим годините между две дати в Excel
Ако сте следвали предишните примери, в които изчислявахме месеци и дни между две дати, тогава лесно можете да изведете формула за изчисляване на години в Excel. Следващите примери могат да ви помогнат да проверите дали сте получили формулата правилно :)
Пример 1. Изчисляване на пълни години между две дати (функция DATEDIF)
За да разберете броя на пълните календарни години между две дати, използвайте стария добър метод DATEDIF с единицата "Y":
=DATEDIF(A2,B2, "y")
Забележете, че формулата DATEDIF връща 0 в ред 6, въпреки че датите са от различни години. Това е така, защото броят на пълните календарни години между началната и крайната дата е равен на нула. И вярвам, че не сте изненадани да видите грешката #NUM! в ред 7, където началната дата е по-нова от крайната.
Пример 2. Изчисляване на години между две дати (функция YEAR)
Алтернативен начин за изчисляване на годините в Excel е използването на функцията YEAR. Подобно на формулата MONTH (Месец), извличате годината от всяка дата и след това изваждате годините една от друга:
=ГОДИНА(B2) - ГОДИНА(A2)
На следващата екранна снимка можете да сравните резултатите, получени от функциите DATEDIF и YEAR:
В повечето случаи резултатите са идентични, с изключение на това, че:
- Функцията DATEDIF изчислява пълни календарни години, докато формулата YEAR просто изважда една година от друга. Ред 6 илюстрира разликата.
- Формулата DATEDIF връща грешка, ако началната дата е по-голяма от крайната, а функцията YEAR връща отрицателна стойност, както е в ред 7.
Как да получите разликата в датата в дни, месеци и години
За да преброите броя на пълните години, месеци и дни между две дати в една формула, просто конкатенирайте три функции DATEDIF:
=DATEDIF(A2, B2, "y") &" години, "&DATEDIF(A2, B2, "ym") &" месеци, " &DATEDIF(A2, B2, "md") &" дни"
Ако предпочитате да не показвате нулеви стойности, можете да обвиете всеки DATEDIF във функцията IF по следния начин:
=IF(DATEDIF(A2,B2, "y")=0, "", DATEDIF(A2,B2, "y") & " години") & IF(DATEDIF(A2,B2, "ym")=0,", DATEDIF(A2,B2, "ym") & " месеци") & IF(DATEDIF(A2, B2, "md")=0, "", DATEDIF(A2, B2, "md") & " дни"
Формулата показва само ненулеви елементи, както е показано на следващата снимка на екрана:
За други начини за получаване на разликата между датите в дни вижте Как да изчислим дните от или до датата в Excel.
Формули DATEDIF за изчисляване на възрастта в Excel
Всъщност изчисляването на възрастта на някого въз основа на датата на раждане е специален случай на изчисляване на разликата в датите в Excel, където крайната дата е днешната дата. Така че използвате обичайната формула DATEDIF с единица "Y", която връща броя на годините между датите, и въвеждате функцията TODAY() в аргумента end_date:
=DATEDIF(A2, TODAY(), "y")
Където A2 е датата на раждане.
Горната формула изчислява броя на пълните години. Ако предпочитате да получите точната възраст, включваща години, месеци и дни, свържете три функции DATEDIF, както направихме в предишния пример:
=DATEDIF(B2,TODAY(), "y") & " Години, " & DATEDIF(B2,TODAY(), "ym") & " Месеци, " & DATEDIF(B2,TODAY(), "md") & " Дни"
И ще получите следния резултат:
За да се запознаете с други методи за преобразуване на датата на раждане във възраст, вижте Как да изчислим възрастта от датата на раждане.
Date & Time Wizard - лесен начин за създаване на формули за разлика в датите в Excel
Както беше показано в първата част на този урок, DATEDIF в Excel е доста гъвкава функция, подходяща за различни приложения. Има обаче един съществен недостатък - тя не е документирана от Microsoft, което означава, че няма да намерите DATEDIF в списъка с функции, нито ще видите подсказки за аргументи, когато започнете да въвеждате формула в клетка. За да можете да използвате функцията DATEDIF вработните си листове, трябва да запомните синтаксиса му и да въведете всички аргументи ръчно, което може да отнеме много време и да доведе до грешки, особено за начинаещите.
Ultimate Suite за Excel променя това радикално, тъй като сега предоставя Дата & Съветник за времето която може да направи почти всяка формула за разлика от датата за нула време. Ето как:
- Изберете клетката, в която искате да вмъкнете формулата.
- Отидете в Инструменти на Ablebits tab> Дата & Време и щракнете върху Дата & Съветник за времето бутон:
- Кликнете върху Дата 1 (или щракнете върху Свиване на диалоговия прозорец вдясно от полето) и изберете клетка, съдържаща първата дата.
- Кликнете върху Дата 2 и изберете клетка с втората дата.
- Изберете желаната единица или комбинация от единици от Разлика в Докато правите това, съветникът ви позволява да прегледате резултата в полето и формулата в клетката.
- Ако сте доволни от визуализацията, щракнете върху Вмъкване на формула в противен случай опитайте с различни единици.
Така например можете да получите брой дни между две дати в Excel:
След като формулата е вмъкната в избраната клетка, можете да я копирате в други клетки, както обикновено, като щракнете два пъти с мишката или като плъзнете дръжката за запълване. Резултатът ще изглежда по подобен начин:
За да се представят резултатите по най-подходящия начин, са налични още няколко допълнителни опции:
- Изключване на години и/или изключват месеци от изчисленията.
- Показвайте или не показвайте текстови етикети като дни , месеци , седмици , и години .
- Показвайте или не показвайте нула единици .
- Връщане на резултатите като отрицателни стойности ако Дата 1 (начална дата) е по-голяма от Дата 2 (крайна дата).
Като пример, нека получим разликата между две дати в години, месеци, седмици и дни, като пренебрегнем нулевите единици:
Предимства на използването на Date & Time Formula Wizard
Освен бързината и простотата, съветникът за дата и час предоставя още няколко предимства:
- За разлика от обикновената формула DATEDIF, разширената формула, създадена от съветника, не се интересува коя от двете дати е по-малка и коя по-голяма. Разликата винаги се изчислява перфектно, дори ако Дата 1 (начална дата) е по-голяма от Дата 2 (крайна дата).
- Съветникът поддържа всички възможни единици (дни, седмици, месеци и години) и ви позволява да избирате от 11 различни комбинации на тези единици.
- Формулите, които съветникът изгражда за вас, са нормални формули на Excel, така че можете да ги редактирате, копирате или премествате както обикновено. Можете също така да споделяте работните си листове с други хора и всички формули ще останат на мястото си, дори ако някой няма Ultimate Suite в своя Excel.
По този начин се изчислява разликата между две дати в различни интервали от време. Надяваме се, че функцията DATEDIF и другите формули, които научихте днес, ще ви бъдат полезни в работата ви.
Налични изтегляния
Ultimate Suite 14-дневна напълно функционална версия (.exe файл)