Excel – rozdíl mezi dvěma daty

Pokud se jedná o rozdíl mezi dvěma daty, často chceme zjistit, kolik času od daného data uplynulo ke dnešnímu dni. V Excelu můžeme dnešní datum vložit jednoduše vložením funkce DNES (nebo NYNÍ nám vloží i aktuální čas).

Ať už potřebujeme zjistit rozdíl mezi daným datem a dneškem nebo rozdíl mezi jakýmikoliv jinými daty, můžeme tato dvě data jednoduše odečíst. Excel nám automaticky rozdíl mezi daty vyjádří ve dnech (je-li buňka v obecném formátu).

odečtení dvou dat pomocí vzorce

Chceme-li rozdíl vyjádřit v letech nebo měsících, hodí se k tomu nejlépe funkce DATEDIF. Tato funkce není z dílny Microsoftu a proto ji nenajdete v knihovně funkcí Excelu. Musíte ji zapsat do buňky ručně.

=DATEDIF(starší datum;novější datum;formát)

První dva argumenty funkce jsou jednoduše dvě daty, mezi nimiž chceme zjistit rozdíl. Do třetího argumentu zapíšeme kód, který představuje formát, ve kterém chceme rozdíl mezi dvěma daty vyjádřit. Ten musí být zapsán do uvozovek. Pro roky použijeme „y“ a pro měsíce „m“.

rozdíl daty v letech pomocí DATEDIF

Další možnosti této funkce se dozvíte v následujícím videu.

16 komentářů u „Excel – rozdíl mezi dvěma daty

  1. Slavěna Walterová Reagovat

    DOBRÝ DEN
    Neporadil byste mi jak zjistit počet let mezi dvěma daty, když starší je rok před rokem 1900.
    Například:
    23.06.1875 a 30.10.1945
    Moc děkuji
    SW

    • Karel Autor článkuReagovat

      Dobrý den, Slavěno,
      pokud máte v Excelu v buňce napsáno datum před rokem 1900, je toto datum uloženo jako text (jinak to v Excelu ani nejde). Musíte tedy z toho textu dostat rok, např. funkce ZPRAVA, která vrátí 4 znaky zprava. Pak získat rok z buňky s datem od 1900, kde je datum uloženo opravdu jako datum funkcí ROK. A jednoduše ta dvě čísla odečíst. Samozřejmě rozdíl nebude přesný, protože i mezi daty 31.12.1899 a 1.1.1900 bude výsledek 1 rok. Pokud byste chtěla vyřešit i tento problém, vzorec by byl značně složitější.
      Karel Kohout

  2. Luboš Reagovat

    Dobrý den Karle, zkoušel jsem dle toho, co radíte Slavěně, ale asi někde dělám chybu, protože vzorec
    =(1900-ZPRAVA(„23.06.1875“;4))+DATEDIF(„1.1.1900″;C30;“y“) mi vrací hodnotu „10.03.1900“.
    Zkoušel jsem převést i převést výsledek „=(ZPRAVA(„23.06.1875″;4)“ na hodnotu funkcí NUMBERVALUE („=NUMBERVALUE(ZPRAVA(„23.06.1875″;4)“), ale bez účinku, pořád mi vrací „10.03.1900“.
    Viz „=NUMBERVALUE(1900-ZPRAVA(„23.06.1875“;4))+DATEDIF(„1.1.1900″;“30.10.1945″;“y“)“.

    Když to ale rozdělím na dvě buňky a ty pak sečtu, tak to funguje (25+45=70)
    1.buňka „=(1900-1875)“=25 a 2.buňka „DATEDIF(„1.1.1900″;“30.10.1945″;“y“)“=45.

    Čím to je ?

    • Karel Autor článkuReagovat

      Dobrý den, Luboši,
      problém je prostý. Buňka je jen špatně naformátována. Když 10.03.1900 naformátujete jako číslo, dostanete 70.

  3. Petr Glonek Reagovat

    Dobrý den, potřebuji poradit s vzorcem na přesný počet měsíců mezi dvěma daty. Tak aby od 1.4. do 15.4. dalo 0.5 a od 1.2. do 15.2. dalo 0.535 – je to větší část měsíce.
    Pak například od ( včetně) 3.4. do 20.7. = 3.578

    Děkuji

    • Karel Autor článkuReagovat

      Dobrý den, zkuste použít tento vzorec:
      =DATEDIF(A1;A2;“m“)+(DEN(A2)-DEN(A1)+1)/DEN(EOMONTH(A2;0))
      kde A1 je starší datum a A2 to novější.

  4. Síma Reagovat

    Dobrý den, potřebovala bych poradit, když mám dvě data Vytvoření požadavku (datum/hodinu/minutu/sekundu ) a další hodnotu ve stejném formátu a potřebuji z toho vyjádřit rozdíl v dnech a hodinách, tak úplně nevím jak to správně napsat do vzorce. Za radu moc předem děkuji.

    • Karel Autor článkuReagovat

      Dobrý den, tady záleží hodně na tom konkrétním formátu. Pokud by to bylo regulérní Excelové datum (např. 6.03.2023 20:16:33), tak by to šlo spočítat dvěma vzorci, jeden odečte dvě data, zaokrouhlí se dolů a získá rozdíl ve dnech, a druhý odečte dvě data, od nich počet dní (výsledek prvního vzorce) a výsledek převede na hodiny vynásobením 24. Pokud ale je formát opravdu takový, jak popisujete (6.03.2023/20/16/33), výpočet by byl asi velmi složitý.

  5. Aleš Kloboučník Reagovat

    Dobrý den, mám podobný problém jako pan Glonek. Zkusil jsem použít Vás vzorec:
    =DATEDIF(A1;A2;“m“)+(DEN(A2)-DEN(A1)+1)/DEN(EOMONTH(A2;0))
    kde A1 je starší datum a A2 to novější.

    a nefunguje, když je např. starší datum 26.12.2022 a novější 1.7.2023.
    Pokud je datum novější 30.6.2023 – k poslednímu v měsíci, tak vzorec funguje , jinak ne…

    Za radu předem děkuji.

    • Karel Autor článkuReagovat

      Dobrý den, máte pravdu, nepočítal jsem s tím, že by den novějšího data byl nižší než den toho staršího. Tento vzorec by měl fungovat:
      =DATEDIF(A1;A2;“m“)+(DEN(EOMONTH(A1;0))-DEN(A1)+DEN(A2))/DEN(EOMONTH(A1;0))-KDYŽ(DEN(A2)>=DEN(A1);1;0)
      Asi existuje i elegantnější řešení, ale to by vyžadovalo více času na přemýšlení 🙂

  6. Josef Eret Reagovat

    Dobrý den,
    Je možné aby Excel vypsal konkrétní měsíce mezi 2 daty?
    Např.: 5.6.2020 – 17.8.2020 = červen, červenec, srpen

  7. M.Svoboda Reagovat

    Dobrý den, chtěl bych se zeptat, zdali je možné docílit výsledku rozdílu v datumech ve formátu dd.hh.mm
    Zde je konkrétní příklad:

    (původní formát dd.mm.rrrr hh:mm):
    A1 = 01.01.2023 10:30 (starší datum a čas)
    A2 = 01.05.2024 15:40 (novější datum a čas)

    (případně změním formát na d.m.rr hh:mm):
    A1 = 1.1.23 10:30 (starší datum a čas)
    A2 = 1.5.24 15:40 (novější datum a čas)

    (výsledek v B1)
    B1 = dd: 486, hh: 5, mm: 10 (rozdíl mezi nimi)

    Rád bych právě viděl i počet dnů, ne jen x tisíc hodin, ale Excel mi jaksi nechce ukázat počet dnů nad 31.
    A jestli byste mohl případně poradit i vhodný formát buněk?

    Předem mnohokrát děkuji za info.

    • Karel Autor článkuReagovat

      Dobrý den,
      obávám se, že toto žádným formátem čísla nevyřešíte. Buď rozepište výsledek do dvou buněk, v jedné bude formát „dd: „0 pro dny a v druhé „hh: „h“, mm:“mm pro hodiny a minuty, nebo to vyřešte vzorcem:
      =“dd: „&CELÁ.ČÁST(A2-A1)&“, hh: „&HODINA(A2-A1)&“, mm: „&MINUTA(A2-A1)

      • M.Svoboda Reagovat

        Dobrý den,
        využil jsem vzorec přesněji takto:

        =“dd: „&CELÁ.ČÁST(G5-I4)&“, hh: „&HODINA(G5-I4)&“, mm: „&MINUTA(G5-I4)

        a vyřešilo to můj problém!

        Mnohokrát děkuji za Váš čas a úsilí.

        PS: Nevím, zdali je možné označit komentář jako „vyřešilo to můj problém“

  8. Petr Čechovský Reagovat

    Dobrý den, prosím o radu. Přes funkci DATEDIF: =DATEDIF(E15;J2;“Y“)&“ roků, „&DATEDIF(E15;J2;“YM“)& “ měsíců“ jsem vyjádřil stáří osoby ve formátu: 60 roků, 0 měsíců. Potom jsem v další buňce ve stejném formátu ručně zapsal odchod do důchodu: 64 roků, 10 měsíců. Jak excel vypočítá ve stejném formátu (4 roků, 10 měsíců) rozdíl mezi odchodem do důchodu a aktuálním věkem? Jinými slovy, jak dlouho ten člověk ještě bude pracovat? Předem moc děkuji za radu.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *