Funkce Excel WORKDAY a NETWORKDAYS pro výpočet pracovních dnů

  • Sdílet Toto
Michael Brown

Tento krátký návod vysvětluje použití funkcí NETWORKDAYS a WORKDAY aplikace Excel k výpočtu pracovních dnů s vlastními parametry víkendů a svátků.

Microsoft Excel nabízí dvě funkce speciálně určené pro výpočet dnů v týdnu - WORKDAY a NETWORKDAYS.

Na stránkách PRACOVNÍ DEN Funkce vrací datum N pracovních dnů v budoucnosti nebo v minulosti a můžete ji použít k přičtení nebo odečtení pracovních dnů k danému datu.

Použití NETWORKDAYS můžete vypočítat počet pracovních dnů mezi dvěma zadanými daty.

V Excelu 2010 a vyšších verzích jsou k dispozici výkonnější modifikace výše uvedených funkcí WORKDAY.INTL a NETWORKDAYS.INTL, které umožňují určit, které dny a kolik dní jsou víkendové.

Nyní se na jednotlivé funkce podíváme podrobněji a zjistíme, jak je můžete použít pro výpočet pracovních dnů v tabulkách aplikace Excel.

    Funkce Excel WORKDAY

    Funkce WORKDAY aplikace Excel vrací datum, které je o daný počet pracovních dnů před nebo před počátečním datem. Nezahrnuje víkendy ani zadané svátky.

    Funkce WORKDAY slouží k výpočtu pracovních dnů, milníků a termínů splatnosti na základě standardního pracovního kalendáře, přičemž sobota a neděle jsou víkendové dny.

    Funkce WORKDAY je vestavěnou funkcí v aplikaci Excel 2007 - 365. V dřívějších verzích je třeba povolit Analysis ToolPak.

    Při použití funkce WORKDAY v aplikaci Excel je třeba zadat následující argumenty:

    WORKDAY(start_date, days, [holidays])

    První dva argumenty jsou povinné a poslední je nepovinný:

    • Start_date - datum, od kterého se začnou počítat dny v týdnu.
    • Dny - počet pracovních dnů, které se přičtou/odečtou od start_date. Kladné číslo vrací budoucí datum, záporné číslo vrací minulé datum.
    • Dovolená - nepovinný seznam dat, která se nemají počítat jako pracovní dny. Může to být buď rozsah buněk obsahující data, která chcete vyloučit z výpočtů, nebo konstanta pole pořadových čísel představujících data.

    Nyní, když znáte základy, se podíváme, jak můžete funkci WORKDAY používat v pracovních listech aplikace Excel.

    Jak používat funkci WORKDAY pro přičítání/odečítání pracovních dnů k datu

    Chcete-li v aplikaci Excel vypočítat počet pracovních dnů, postupujte podle těchto jednoduchých pravidel:

    • Na přidat pracovních dnů, zadejte kladné číslo jako dny argument vzorce WORKDAY.
    • Na odečíst pracovních dnů, použijte záporné číslo v dny argument.

    Předpokládejme, že máte v buňce A2 datum zahájení, v buňkách B2:B5 seznam svátků a chcete zjistit data 30 pracovních dnů v budoucnosti a minulosti. To můžete provést pomocí následujících vzorců:

    Přidání 30 pracovních dnů k datu zahájení, kromě svátků v B2:B5:

    =PRACOVNÍ DEN(A2, 30, B2:B5)

    Odečtení 30 pracovních dnů od data zahájení, s výjimkou svátků v B2:B5:

    =PRACOVNÍ DEN(A2, -30, B2:B5)

    Výpočet dnů v týdnu na základě aktuální datum , jako počáteční datum použijte funkci TODAY():

    Přidání 30 pracovních dnů k dnešnímu datu:

    =PRACOVNÍ DEN(TODAY(), 30)

    Odečtení 30 pracovních dnů od dnešního data:

    =PRACOVNÍ DEN(TODAY(), -30)

    Chcete-li zadat počáteční datum přímo do vzorce, použijte funkci DATE:

    =PRACOVNÍ DEN(DATE(2015,5,6), 30)

    Následující snímek obrazovky ukazuje výsledky všech těchto a několika dalších vzorců WORKDAY:

    A samozřejmě můžete počet pracovních dnů, které se mají přičíst/odečíst od počátečního data, zadat do některé buňky a pak se na tuto buňku odvolat ve vzorci. Například:

    =PRACOVNÍ DEN(A2, C2)

    Kde A2 je datum začátku a C2 je počet dnů, které nejsou víkendové, za datem začátku (záporná čísla) nebo před ním (kladná čísla), přičemž se nevylučují žádné svátky.

    Tip: V aplikacích Excel 365 a 2021 můžete pomocí funkce WORKDAY v kombinaci s funkcí SEQUENCE vytvořit řadu pracovních dnů.

    Funkce Excel WORKDAY.INTL

    WORKDAY.INTL je výkonnější modifikace funkce WORKDAY, která pracuje s funkcemi vlastní parametry víkendu . Stejně jako WORKDAY vrací datum, které je zadaným počtem pracovních dnů v budoucnosti nebo v minulosti, ale umožňuje určit, které dny v týdnu mají být považovány za víkendové.

    Funkce WORKDAY.INTL byla zavedena v aplikaci Excel 2010, takže v dřívějších verzích aplikace Excel není k dispozici.

    Syntaxe funkce Excel WORKDAY.INTL je následující:

    WORKDAY.INTL(start_date, days, [weekend], [holidays])

    První dva argumenty jsou povinné a jsou podobné argumentům WORKDAY:

    Start_date - počáteční datum.

    Dny - počet pracovních dnů před (záporná hodnota) nebo po (kladná hodnota) datu zahájení. Pokud je hodnota dny je argument zadán jako desetinné číslo, je zkrácen na celé číslo.

    Poslední dva argumenty jsou nepovinné:

    Víkend - určuje, které dny v týdnu se mají počítat jako víkendové dny. Může to být číslo nebo řetězec, jak je ukázáno níže.

    Číslo Víkendové dny
    1 nebo vynecháno sobota, neděle
    2 Neděle, pondělí
    3 Pondělí, úterý
    4 Úterý, středa
    5 Středa, čtvrtek
    6 Čtvrtek, pátek
    7 Pátek, sobota
    11 Pouze v neděli
    12 Pouze v pondělí
    13 Pouze v úterý
    14 Pouze ve středu
    15 Pouze ve čtvrtek
    16 Pouze v pátek
    17 Pouze v sobotu

    Víkendový řetězec - řada sedmi nul a jedniček, které představují sedm dní v týdnu, počínaje pondělím. 1 představuje nepracovní den a 0 představuje pracovní den. Například:

    • "0000011" - Sobota a neděle jsou víkendy.
    • "1000001" - Pondělí a neděle jsou víkendy.

    Na první pohled se může zdát, že víkendové řetězce jsou zbytečné, ale mně osobně se tato metoda líbí více, protože můžete vytvořit víkendový řetězec za běhu, aniž byste si museli pamatovat nějaká čísla.

    Dovolená - nepovinný seznam dat, která chcete vyloučit z kalendáře pracovních dnů. Může to být rozsah buněk obsahujících data nebo konstanta pole sériových hodnot představujících tato data.

    Použití WORKDAY.INTL v aplikaci Excel - příklady vzorců

    Velká část teorie, kterou jsme právě probrali, se může zdát poměrně složitá a nepřehledná, ale když si vyzkoušíte vzorce, bude to opravdu snadné.

    V našem souboru dat s datem zahájení v buňce A2 a seznamem svátků v buňkách A5:A8 vypočítáme pracovní dny s vlastními víkendy.

    Na přidat 30 pracovních dní do data nástupu, pátek a sobota se počítají jako víkendy a svátky v A5:A8 se nepočítají:

    =WORKDAY.INTL(A2, 30, 7, A5:A8)

    nebo

    =WORKDAY.INTL(A2, 30, "0000110", A5:A8)

    Na odečíst 30 pracovních dnů od data nástupu, neděle a pondělí se počítají jako víkendy a svátky v A5:A8 se nepočítají:

    =WORKDAY.INTL(A2, -30, 2, A5:A8)

    nebo

    =WORKDAY.INTL(A2, -30, "1000001", A5:A8)

    Přidání 10 pracovních dnů k aktuální datum , jediným víkendovým dnem je neděle, žádné svátky:

    =WORKDAY.INTL(TODAY(), 10, 11)

    nebo

    =WORKDAY.INTL(A2, 10, "0000001")

    V listu aplikace Excel mohou vzorce vypadat podobně:

    Poznámka: Obě funkce Excelu WORKDAY a WORKDAY.INTL vracejí pořadová čísla představující data. Chcete-li tato čísla zobrazit jako data, vyberte buňky s čísly a stisknutím klávesy Ctrl+1 otevřete nabídku Formátování buněk dialog. Na Číslo vyberte kartu Datum v Kategorie a vyberte požadovaný formát data. Podrobný postup naleznete v části Jak změnit formát data v aplikaci Excel.

    Chyby souborů Excel WORKDAY a WORKDAY.INTL

    Pokud vzorec WORKDAY nebo WORKDAY.INTL aplikace Excel vrátí chybu, může to být způsobeno jednou z následujících příčin:

    #NUM! k chybě dojde, pokud:

    • kombinace start_date a dny argumentů vede k neplatnému datu, nebo
    • víkend argument ve funkci WORKDAY.INTL je neplatný.

    #VALUE! k chybě dojde, pokud:

    • start_date nebo jakoukoli hodnotu v dovolená není platné datum, nebo
    • dny argument není číselný.

    Funkce NETWORKDAYS aplikace Excel

    Funkce NETWORKDAYS v aplikaci Excel vrací počet pracovních dnů mezi dvěma daty, s výjimkou víkendů a volitelně zadaných svátků.

    Syntaxe programu Excel NETWORKDAYS je intuitivní a snadno zapamatovatelná:

    NETWORKDAYS(start_date, end_date, [holidays])

    První dva argumenty jsou povinné a třetí je nepovinný:

    • Start_date - počáteční datum, od kterého se začnou počítat pracovní dny.
    • End_date - konec období, za které počítáte pracovní dny.

    Do vráceného počtu pracovních dnů se započítává datum zahájení i ukončení.

    • Dovolená - nepovinný seznam svátků, které by se neměly počítat jako pracovní dny.

    Jak používat NETWORKDAYS v aplikaci Excel - příklad vzorce

    Řekněme, že máte seznam svátků v buňkách A2:A5, počáteční data ve sloupci B, koncová data ve sloupci C a chcete zjistit, kolik pracovních dnů je mezi těmito daty. Příslušný vzorec NETWORKDAYS zjistíte snadno:

    =NETWORKDAYS(B2, C2, $A$2:$A$5)

    Všimněte si, že funkce NETWORKDAYS aplikace Excel vrací kladnou hodnotu, pokud je počáteční datum kratší než koncové datum, a zápornou hodnotu, pokud je koncové datum novější než počáteční datum (jako v řádku 5):

    Funkce Excel NETWORKDAYS.INTL

    Stejně jako funkce NETWORKDAYS i funkce NETWORKDAYS.INTL aplikace Excel počítá počet pracovních dnů mezi dvěma daty, ale umožňuje určit, které dny se mají počítat jako víkendové.

    Syntaxe funkce NETWORKDAYS.INTL je velmi podobná funkci NETWORKDAYS, pouze má navíc parametr [víkend], který určuje, které dny v týdnu se mají počítat jako víkendy.

    NETWORKDAYS.INTL( start_date, end_date, [weekend], [holidays] )

    Na stránkách víkend argument může přijímat buď číslo, nebo řetězec. Čísla a víkendové řetězce jsou naprosto stejné jako v příkazu víkend parametr funkce WORKDAY.INTL.

    Funkce NETWORKDAYS.INTL je k dispozici v aplikaci Excel 365 - 2010.

    Použití NETWORKDAYS.INTL v aplikaci Excel - příklad vzorce

    Na základě seznamu dat z předchozího příkladu vypočítáme počet pracovních dnů mezi dvěma daty, kdy jediným víkendovým dnem je neděle. Za tímto účelem zadáme do pole číslo 11. víkend argumentu vzorce NETWORKDAYS.INTL nebo vytvořte řetězec šesti nul a jedné jedničky ("0000001"):

    =NETWORKDAYS.INTL(B2, C2, 11, $A$2:$A$5)

    Nebo

    =NETWORKDAYS.INTL(B2, C2, "0000001", $A$2:$A$5)

    Následující snímek obrazovky dokazuje, že oba vzorce poskytují naprosto shodné výsledky.

    Jak zvýraznit pracovní dny v aplikaci Excel

    Pomocí funkcí WORKDAY a WORKDAY.INTL můžete v listech aplikace Excel nejen vypočítat pracovní dny, ale také je zvýraznit podle potřeby obchodní logiky. Za tímto účelem vytvoříte pravidlo podmíněného formátování se vzorcem WORKDAY nebo WORKDAY.INTL.

    Například v seznamu dat ve sloupci B zvýrazníme pouze budoucí data, která jsou do 15 pracovních dnů od dnešního data, s výjimkou dvou svátků v buňkách A2:A3. Nejzřejmější vzorec, který nás napadne, je následující:

    =AND($B2>TODAY(), $B2<=WORKDAY(TODAY(), 15, $A$2:$A$3))

    V první části logického testu odřízneme minulá data, tj. ověříme, zda je datum rovno nebo větší než dnešek: $B2>TODAY(). A v druhé části ověříme, zda datum není vzdáleno více než 15 pracovních dnů v budoucnosti, s výjimkou víkendových dnů a zadaných svátků: $B2<=WORKDAY(TODAY(), 15, $A$2:$A$3)

    Vzorec vypadá správně, ale jakmile na jeho základě vytvoříte pravidlo, zjistíte, že zvýrazňuje nesprávná data:

    Zkusme zjistit, proč se tak děje. Problém není ve funkci WORKDAY, jak by někdo mohl usoudit. Funkce je správná, ale... co vlastně dělá? Vrací datum za 15 pracovních dní od teď, s výjimkou víkendových dnů (sobota a neděle) a svátků v buňkách A2:A3.

    Dobře, a co udělá pravidlo založené na tomto vzorci? Zvýrazní VŠECHNA data, která jsou rovna nebo větší než dnešek a menší než datum vrácené funkcí WORKDAY. Vidíte? Všechna data! Pokud nechcete vybarvit víkendy a svátky, musíte Excelu výslovně říct, aby to nedělal. Do našeho vzorce tedy přidáme další dvě podmínky:

    • Funkce WEEKDAY pro vyloučení víkendů: WEEKDAY($B2, 2)<6
    • Funkce COUNTIF pro vyloučení svátků: COUNTIF($A$2:$A$3, $B2)=0

    Jak ukazuje následující snímek obrazovky, vylepšený vzorec funguje dokonale:

    =AND($B2>TODAY(), $B2<=WORKDAY(TODAY(), 15, $A$2:$A$3), COUNTIF($A$2:$A$3, $B2)=0, WEEKDAY($B2, 2)<6)

    Jak vidíte, díky funkcím WORKDAY a WORKDAY.INTL je výpočet pracovních dnů v Excelu rychlý a snadný. Samozřejmě, že vaše reálné vzorce budou pravděpodobně složitější, ale znalost základů vám nesmírně pomůže, protože si můžete zapamatovat jen malou sadu podstatných věcí a zbytek odvodit. Děkuji za přečtení a doufám, že se na našem blogu uvidíme příští týden!

    Michael Brown je oddaný technologický nadšenec s vášní pro zjednodušování složitých procesů pomocí softwarových nástrojů. S více než desetiletými zkušenostmi v technologickém průmyslu zdokonalil své dovednosti v aplikacích Microsoft Excel a Outlook a také v Tabulkách a Dokumentech Google. Michaelův blog je věnován sdílení jeho znalostí a odborných znalostí s ostatními a poskytuje snadno pochopitelné tipy a návody pro zlepšení produktivity a efektivity. Ať už jste zkušený profesionál nebo začátečník, Michaelův blog nabízí cenné postřehy a praktické rady, jak tyto základní softwarové nástroje co nejlépe využít.