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).
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“.
Další možnosti této funkce se dozvíte v následujícím videu.
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
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
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 ?
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.
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
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ší.
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.
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ý.
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.
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í 🙂
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
Dobrý den, to asi vzorcem nepůjde. Jedině makrem.
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.
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)
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“