Dátumové funkcie v Exceli: splatnosti, pracovné dni a konce období
Dátumy sú v firemných tabuľkách všade: dátum vystavenia, splatnosť, koniec zúčtovacieho obdobia, termín dodania. A zároveň sú najčastejším zdrojom nepresností – lebo mesiace majú rôzny počet dní, cez víkend sa nepracuje a „30 dní" a „30 pracovných dní" sú dve odlišné veci. Excel má na to sadu funkcií, ktoré tieto výpočty robia správne.
Najprv to hlavné: dátum je číslo
Kľúč k pochopeniu všetkých dátumových funkcií je jednoduchý fakt – Excel ukladá dátum ako poradové číslo. Prvý január 1900 má číslo 1, každý ďalší deň je o jednotku vyššie. To, čo vidíte v bunke, je len formát zobrazenia.
Z toho vyplýva niekoľko praktických dôsledkov. S dátumami sa dá počítať ako s číslami: =A2+30 pripočíta tridsať dní a =B2-A2 vráti počet dní medzi dvoma dátumami. A ak sa vám niekedy stalo, že po výpočte s dátumami vyskočilo číslo ako 46 350, nešlo o chybu – iba je potrebné nastaviť bunke formát dátumu.
1. EOMONTH – koniec obdobia bez počítania dní
Funkcia vráti posledný deň mesiaca, prípadne mesiaca posunutého o zadaný počet mesiacov dopredu alebo dozadu.
=EOMONTH(A2;0) vráti koniec toho mesiaca, v ktorom leží dátum v bunke A2. Nula znamená „tento mesiac", jednotka „nasledujúci", mínus jedna „predchádzajúci".
Typické použitie je splatnosť typu „koniec nasledujúceho mesiaca", ktorú mnohé firmy používajú namiesto pevného počtu dní:
=EOMONTH(datum_vystavenia;1)
Druhý veľmi častý prípad je prvý deň mesiaca, na ktorý samostatná funkcia neexistuje – získate ho tak, že vezmete koniec predchádzajúceho mesiaca a pripočítate jeden deň:
=EOMONTH(A2;-1)+1
Táto dvojica vzorcov je základom každého reportu členeného po mesiacoch: definujú začiatok a koniec zúčtovacieho obdobia bez toho, aby ste museli riešiť, či má mesiac 28, 30 alebo 31 dní.
2. EDATE – rovnaký deň o niekoľko mesiacov
Kým EOMONTH mieri na koniec mesiaca, EDATE zachová ten istý deň v mesiaci a posunie iba mesiac.
=EDATE(A2;3)
Ak je v A2 pätnásty marec, výsledkom je pätnásty jún. Hodí sa na splatnosti dohodnuté v mesiacoch, výročia zmlúv, konce záruk, obnovy predplatného či splátkové kalendáre.
Prečo nestačí pripočítať 90 dní? Lebo výsledok by sa postupne rozchádzal s realitou – tri mesiace majú raz 89, inokedy 92 dní. EDATE navyše korektne rieši aj hraničné prípady: ak posúvate 31. januára o mesiac, vráti 28. (alebo 29.) februára, pretože 31. február neexistuje.
3. WORKDAY – termín v pracovných dňoch
Keď zákazníkovi sľúbite dodanie „do desiatich pracovných dní", jednoduché pripočítanie desiatky nefunguje – vyjde vám sobota. WORKDAY počíta iba pracovné dni a víkendy preskakuje.
=WORKDAY(A2;10)
Ešte užitočnejší je tretí argument, do ktorého vložíte oblasť so sviatkami. Stačí si na pomocný hárok vypísať slovenské sviatky na aktuálny rok a vzorec ich bude automaticky vynechávať:
=WORKDAY(A2;10;sviatky)
Práve toto je detail, ktorý odlišuje presný termín od približného. Sviatky si v tabuľke pomenujte (napríklad názvom sviatky), aby ste ich vedeli použiť vo všetkých vzorcoch naraz a raz ročne aktualizovali na jednom mieste.
Ak vo firme neplatí štandardný víkend – napríklad pracuje sa aj v sobotu – použite variant WORKDAY.INTL, ktorý umožňuje definovať, ktoré dni sú voľné.
4. NETWORKDAYS – koľko pracovných dní ubehlo
Opačná úloha: nepočítate termín, ale počet pracovných dní medzi dvoma dátumami.
=NETWORKDAYS(datum_od;datum_do;sviatky)
Funkcia počíta oba krajné dni vrátane a rovnako ako WORKDAY vynecháva víkendy aj zadané sviatky.
V praxi sa hodí najmä na dve veci. Prvá je reálne vyhodnotenie splatnosti: keď zistíte, že zákazník platí v priemere za 34 kalendárnych dní, ale iba za 23 pracovných, dostávate presnejší obraz o tom, ako rýchlo skutočne reaguje. Druhá je meranie trvania – koľko pracovných dní trvalo vybavenie objednávky, spracovanie reklamácie či uzávierka mesiaca.
5. DATEDIF – vek pohľadávky v mesiacoch a rokoch
Zvláštnosť medzi funkciami: DATEDIF v Exceli funguje, ale nenájdete ho v našepkávači ani v nápovede. Ide o pozostatok zo starších verzií, ktorý sa zachoval, pretože vie niečo, čo iné funkcie nevedia – rozdiel dvoch dátumov v celých mesiacoch alebo rokoch.
=DATEDIF(datum_od;datum_do;"m")
Tretí argument určuje jednotku: "d" pre dni, "m" pre celé mesiace, "y" pre celé roky. Použite ho na vek pohľadávky, dĺžku spolupráce so zákazníkom alebo dobu, po ktorú je zásoba na sklade.
Prečo nestačí vydeliť počet dní tridsiatimi? Pretože výsledok by bol skreslený a nesedel by s tým, ako obdobie vníma človek. DATEDIF vráti počet skutočne uplynutých mesiacov.
Malé upozornenie: keďže funkcia nie je oficiálne dokumentovaná, Excel vám pri písaní nenapovie ani argumenty, ani jednotky – treba ich napísať presne a v úvodzovkách.
Spojenie do praxe: prehľad pohľadávok
Uvedené funkcie majú najväčší zmysel v kombinácii. Typický prehľad neuhradených faktúr potrebuje tri stĺpce: splatnosť, počet dní po splatnosti a zaradenie do intervalu.
Splatnosť podľa dohodnutých podmienok: =EOMONTH(datum_vystavenia;1)
Počet dní po splatnosti k dnešku: =TODAY()-splatnost
Zaradenie do intervalu (do 30, 31 – 60, 61 – 90, viac) potom vyriešite pomocou XLOOKUP s približnou zhodou alebo vnorenou funkciou IF – a máte prehľad, ktorý sa každé ráno aktualizuje sám, pretože TODAY() vždy vracia aktuálny dátum.
Bonus: keď dátum nie je dátum
Najčastejší problém pri práci s dátumami nesúvisí so vzorcami, ale s exportmi. Dáta stiahnuté zo systému alebo z e-shopu často obsahujú dátumy, ktoré vyzerajú ako dátumy, ale Excel ich vidí ako text. Všetky vyššie uvedené funkcie na nich potom zlyhajú.
Rýchly test: skutočné dátumy sú v bunke automaticky zarovnané doprava, text doľava. Ďalší spôsob je označiť stĺpec a pozrieť sa na súčtový riadok v spodnej lište – ak sa nezobrazí žiadny súčet, ide o text.
Riešení je viac. Pri jednoduchších prípadoch pomôže funkcia DATEVALUE alebo nástroj Text do stĺpcov, ktorý pri poslednom kroku umožní určiť poradie dňa, mesiaca a roka. Pri pravidelných exportoch je však najlepším riešením Power Query, kde sa prevod nastaví raz a potom prebieha automaticky pri každej aktualizácii.
Dostupnosť
Dobrá správa na záver: všetky funkcie z tohto článku – EOMONTH, EDATE, WORKDAY, NETWORKDAYS aj DATEDIF – fungujú vo všetkých bežne používaných verziách Excelu vrátane starších firemných inštalácií. Nepotrebujete Microsoft 365.
Potrebujete prehľad pohľadávok, ktorý sa aktualizuje sám? Vieme vám ho postaviť na mieru – vrátane splatností podľa vašich obchodných podmienok a intervalov po splatnosti. Napíšte nám, konzultácia je zdarma.
Chcem konzultáciu zdarma