Obsah
Tento krátky návod vysvetľuje používanie funkcií Excel NETWORKDAYS a WORKDAY na výpočet pracovných dní s vlastnými parametrami víkendov a sviatkov.
Microsoft Excel poskytuje dve funkcie špeciálne určené na výpočet dní v týždni - WORKDAY a NETWORKDAYS.
Stránka PRACOVNÝ DEŇ Funkcia vráti dátum N pracovných dní v budúcnosti alebo v minulosti a môžete ju použiť na pripočítanie alebo odpočítanie pracovných dní k danému dátumu.
Použitie NETWORKDAYS môžete vypočítať počet pracovných dní medzi dvoma zadanými dátumami.
V programe Excel 2010 a vyšších verziách sú k dispozícii výkonnejšie modifikácie uvedených funkcií WORKDAY.INTL a NETWORKDAYS.INTL, ktoré umožňujú definovať, ktoré dni a koľko dní sú víkendové.
Teraz sa bližšie pozrieme na jednotlivé funkcie a zistíme, ako ich môžete použiť na výpočet pracovných dní v hárkoch programu Excel.
Funkcia Excel WORKDAY
Funkcia Excel WORKDAY (Pracovný deň) vráti dátum, ktorý je o daný počet pracovných dní pred alebo pred začiatočným dátumom. Nezahŕňa víkendy, ako aj všetky zadané sviatky.
Funkcia WORKDAY je určená na výpočet pracovných dní, míľnikov a termínov splatnosti na základe štandardného pracovného kalendára, pričom sobota a nedeľa sú víkendové dni.
Funkcia WORKDAY je zabudovaná funkcia v programe Excel 2007 - 365. V predchádzajúcich verziách je potrebné povoliť Analysis ToolPak.
Pri použití funkcie WORKDAY v programe Excel musíte zadať nasledujúce argumenty:
WORKDAY(start_date, days, [holidays])Prvé 2 argumenty sú povinné a posledný je nepovinný:
- Start_date - dátum, od ktorého sa majú začať počítať dni v týždni.
- Dni - počet pracovných dní, ktoré sa pripočítajú/odpočítajú od dátumu start_date. Kladné číslo vráti budúci dátum, záporné číslo vráti minulý dátum.
- Dovolenka - nepovinný zoznam dátumov, ktoré sa nemajú počítať ako pracovné dni. Môže to byť buď rozsah buniek obsahujúcich dátumy, ktoré chcete vylúčiť z výpočtov, alebo pole konštantných poradových čísel reprezentujúcich dátumy.
Teraz, keď už poznáte základy, sa pozrieme, ako môžete funkciu WORKDAY používať vo svojich hárkoch programu Excel.
Ako používať WORKDAY na pridanie/odčítanie pracovných dní k dátumu
Ak chcete v programe Excel vypočítať počet pracovných dní, postupujte podľa týchto jednoduchých pravidiel:
- Na pridať pracovných dní, zadajte kladné číslo ako dni argument vzorca WORKDAY.
- Na odčítať pracovných dní, použite záporné číslo v dni argument.
Predpokladajme, že máte dátum začiatku v bunke A2, zoznam sviatkov v bunkách B2:B5 a chcete zistiť dátumy 30 pracovných dní v budúcnosti a minulosti. Môžete to urobiť pomocou nasledujúcich vzorcov:
Pridanie 30 pracovných dní k dátumu začatia práce, okrem sviatkov v B2:B5:
=PRACOVNÝ DEŇ(A2, 30, B2:B5)
Odpočítanie 30 pracovných dní od dátumu začiatku, okrem sviatkov v B2:B5:
=PRACOVNÝ DEŇ(A2, -30, B2:B5)
Výpočet dní v týždni na základe aktuálny dátum , ako počiatočný dátum použite funkciu TODAY():
Pridanie 30 pracovných dní k dnešnému dátumu:
=PRACOVNÝ DEŇ(TODAY(), 30)
Odčítanie 30 pracovných dní od dnešného dátumu:
=PRACOVNÝ DEŇ(DNES(), -30)
Ak chcete do vzorca priamo zadať počiatočný dátum, použite funkciu DATE:
=PRACOVNÝ DEŇ(DATE(2015,5,6), 30)
Nasledujúci obrázok ukazuje výsledky všetkých týchto a niekoľkých ďalších vzorcov WORKDAY:
A samozrejme, počet pracovných dní, ktoré sa majú pripočítať k dátumu začatia/odpočítať od dátumu začatia, môžete zadať do niektorej bunky a potom sa na túto bunku odvolať vo vzorci. Napríklad:
=PRACOVNÝ DEŇ(A2, C2)
Kde A2 je dátum začiatku a C2 je počet dní mimo víkendu za (záporné čísla) alebo pred (kladné čísla) dátumom začiatku, bez vylúčenia sviatkov.
Tip. V aplikáciách Excel 365 a 2021 môžete na vytvorenie série pracovných dní použiť funkciu WORKDAY (Pracovný deň) v kombinácii s funkciou SEQUENCE (Postupnosť).
Funkcia Excel WORKDAY.INTL
WORKDAY.INTL je výkonnejšia modifikácia funkcie WORKDAY, ktorá pracuje s vlastné parametre víkendu Rovnako ako WORKDAY vráti dátum, ktorý je zadaným počtom pracovných dní v budúcnosti alebo v minulosti, ale umožňuje určiť, ktoré dni v týždni sa majú považovať za víkendové dni.
Funkcia WORKDAY.INTL bola zavedená v programe Excel 2010, a preto nie je k dispozícii v predchádzajúcich verziách programu Excel.
Syntax funkcie Excel WORKDAY.INTL je nasledujúca:
WORKDAY.INTL(start_date, days, [weekend], [holidays])Prvé dva argumenty sú povinné a sú podobné argumentom WORKDAY:
Start_date - počiatočný dátum.
Dni - počet pracovných dní pred (záporná hodnota) alebo po (kladná hodnota) dátume začiatku. dni
argument je zadaný ako desatinné číslo, je skrátený na celé číslo.
Posledné dva argumenty sú nepovinné:
Víkend - určuje, ktoré dni v týždni sa majú počítať ako víkendové dni. Môže to byť číslo alebo reťazec, ako je uvedené nižšie.
Číslo | Víkendové dni |
1 alebo vynechané | Sobota, nedeľa |
2 | nedeľa, pondelok |
3 | Pondelok, utorok |
4 | Utorok, streda |
5 | Streda, štvrtok |
6 | Štvrtok, piatok |
7 | Piatok, sobota |
11 | Len v nedeľu |
12 | Len v pondelok |
13 | Len v utorok |
14 | Len v stredu |
15 | Len vo štvrtok |
16 | Len v piatok |
17 | Len v sobotu |
Víkendový reťazec - séria siedmich 0 a 1, ktoré predstavujú sedem dní v týždni, počnúc pondelkom. 1 predstavuje nepracovný deň a 0 predstavuje pracovný deň. Napríklad
- "0000011" - Sobota a nedeľa sú víkendy.
- "1000001" - Pondelok a nedeľa sú víkendy.
Na prvý pohľad sa môže zdať, že víkendové reťazce sú zbytočné, ale mne osobne sa táto metóda páči viac, pretože si môžete vytvoriť víkendový reťazec za behu bez toho, aby ste si museli pamätať nejaké čísla.
Dovolenka - nepovinný zoznam dátumov, ktoré chcete vylúčiť z kalendára pracovných dní. Môže to byť rozsah buniek obsahujúcich dátumy alebo pole konštantných sériových hodnôt reprezentujúcich tieto dátumy.
Používanie WORKDAY.INTL v programe Excel - príklady vzorcov
No, dosť veľká časť teórie, ktorú sme práve prebrali, sa môže zdať dosť komplikovaná a mätúca, ale ak si vyskúšate vzorce, bude to naozaj jednoduché.
V našom súbore údajov s dátumom začiatku v bunke A2 a zoznamom sviatkov v bunkách A5:A8 vypočítame pracovné dni s vlastnými víkendmi.
Na pridať 30 pracovných dní do dátumu nástupu, piatok a sobota sa počítajú ako víkendy a sviatky v A5:A8 sa vylučujú:
=WORKDAY.INTL(A2, 30, 7, A5:A8)
alebo
=WORKDAY.INTL(A2, 30, "0000110", A5:A8)
Na odčítať 30 pracovných dní od dátumu nástupu, nedeľa a pondelok sa počítajú ako víkendy a sviatky v A5:A8 sa vylučujú:
=WORKDAY.INTL(A2, -30, 2, A5:A8)
alebo
=WORKDAY.INTL(A2, -30, "1000001", A5:A8)
Ak chcete pridať 10 pracovných dní k aktuálny dátum , nedeľa je jediný víkendový deň, žiadne sviatky:
=WORKDAY.INTL(TODAY(), 10, 11)
alebo
=WORKDAY.INTL(A2, 10, "0000001")
V hárku programu Excel môžu vzorce vyzerať podobne:
Poznámka: Funkcie Excel WORKDAY aj WORKDAY.INTL vracajú sériové čísla predstavujúce dátumy. Ak chcete tieto čísla zobraziť ako dátumy, vyberte bunky s číslami a stlačením klávesovej skratky Ctrl+1 otvorte Formátovanie buniek dialóg. Na Číslo vyberte kartu Dátum v Kategória Zoznam a vyberte požadovaný formát dátumu. Podrobný postup nájdete v časti Ako zmeniť formát dátumu v programe Excel.
Chyby súborov Excel WORKDAY a WORKDAY.INTL
Ak vzorec WORKDAY alebo WORKDAY.INTL programu Excel vráti chybu, dôvodom bude pravdepodobne jedna z nasledujúcich príčin:
#NUM! chyba nastane, ak:
- kombinácia
start_date
adni
argumentov vedie k neplatnému dátumu, alebo víkend
argument vo funkcii WORKDAY.INTL je neplatný.
#VALUE! chyba nastane, ak:
start_date
alebo akúkoľvek hodnotu vDovolenka
nie je platný dátum, alebodni
argument nie je číselný.
Funkcia Excel NETWORKDAYS
Funkcia NETWORKDAYS v programe Excel vráti počet pracovných dní medzi dvoma dátumami bez víkendov a voliteľne bez zadaných sviatkov.
Syntax programu Excel NETWORKDAYS je intuitívna a ľahko zapamätateľná:
NETWORKDAYS(start_date, end_date, [holidays])Prvé dva argumenty sú povinné a tretí je nepovinný:
- Start_date - počiatočný dátum, od ktorého sa začnú počítať pracovné dni.
- End_date - koniec obdobia, za ktoré počítate pracovné dni.
Do vráteného počtu pracovných dní sa započítava dátum začiatku aj konca.
- Dovolenka - voliteľný zoznam sviatkov, ktoré by sa nemali počítať ako pracovné dni.
Ako používať NETWORKDAYS v programe Excel - príklad vzorca
Povedzme, že máte zoznam sviatkov v bunkách A2:A5, dátumy začiatku v stĺpci B, dátumy konca v stĺpci C a chcete vedieť, koľko pracovných dní je medzi týmito dátumami. Príslušný vzorec NETWORKDAYS je ľahké zistiť:
=NETWORKDAYS(B2, C2, $A$2:$A$5)
Všimnite si, že funkcia NETWORKDAYS programu Excel vracia kladnú hodnotu, ak je dátum začiatku menší ako dátum konca, a zápornú hodnotu, ak je dátum konca novší ako dátum začiatku (ako v riadku 5):
Funkcia Excel NETWORKDAYS.INTL
Podobne ako funkcia NETWORKDAYS, aj funkcia NETWORKDAYS.INTL programu Excel vypočíta počet dní v týždni medzi dvoma dátumami, ale umožňuje vám určiť, ktoré dni sa majú počítať ako víkendové.
Syntax funkcie NETWORKDAYS.INTL je veľmi podobná funkcii NETWORKDAYS, ale má dodatočný parameter [víkend], ktorý určuje, ktoré dni v týždni sa majú počítať ako víkendy.
NETWORKDAYS.INTL( start_date, end_date, [weekend], [holidays] ) Stránka víkend
argument môže akceptovať buď číslo, alebo reťazec. Čísla a víkendové reťazce sú presne také isté ako v víkend
parameter funkcie WORKDAY.INTL.
Funkcia NETWORKDAYS.INTL je k dispozícii v programe Excel 365 - 2010.
Použitie NETWORKDAYS.INTL v programe Excel - príklad vzorca
Na základe zoznamu dátumov z predchádzajúceho príkladu vypočítame počet pracovných dní medzi dvoma dátumami, pričom jediným víkendovým dňom je nedeľa. Na tento účel zadáte číslo 11 do víkend
argumentu vzorca NETWORKDAYS.INTL alebo vytvorte reťazec šiestich 0 a jednej 1 ("0000001"):
=NETWORKDAYS.INTL(B2, C2, 11, $A$2:$A$5)
Alebo
=NETWORKDAYS.INTL(B2, C2, "0000001", $A$2:$A$5)
Nasledujúci obrázok dokazuje, že oba vzorce poskytujú úplne rovnaké výsledky.
Ako zvýrazniť pracovné dni v programe Excel
Pomocou funkcií WORKDAY a WORKDAY.INTL môžete nielen vypočítať pracovné dni v hárkoch programu Excel, ale ich aj zvýrazniť podľa potreby vašej obchodnej logiky. Na tento účel vytvoríte pravidlo podmieneného formátovania so vzorcom WORKDAY alebo WORKDAY.INTL.
Napríklad v zozname dátumov v stĺpci B zvýraznime len budúce dátumy, ktoré sú do 15 pracovných dní od dnešného dátumu, s výnimkou dvoch sviatkov v bunkách A2:A3. Najzrejmejší vzorec, ktorý prichádza do úvahy, je nasledujúci:
=AND($B2>TODAY(), $B2<=WORKDAY(TODAY(), 15, $A$2:$A$3))
V prvej časti logického testu sa odrezávajú minulé dátumy, t. j. overuje sa, či sa dátum rovná alebo je väčší ako dnes: $B2>TODAY(). A v druhej časti sa overuje, či dátum nie je viac ako 15 pracovných dní v budúcnosti, okrem víkendových dní a zadaných sviatkov: $B2<=WORKDAY(TODAY(), 15, $A$2:$A$3)
Vzorec vyzerá správne, ale keď na jeho základe vytvoríte pravidlo, zistíte, že zvýrazňuje nesprávne dátumy:
Skúsme zistiť, prečo sa to deje. Problém nie je vo funkcii WORKDAY, ako by niekto mohol usúdiť. Funkcia je správna, ale... čo vlastne robí? Vracia dátum 15 pracovných dní odteraz, s výnimkou víkendových dní (sobota a nedeľa) a sviatkov v bunkách A2:A3.
Dobre, a čo urobí pravidlo založené na tomto vzorci? Zvýrazní VŠETKY dátumy, ktoré sa rovnajú alebo sú väčšie ako dnešok a menšie ako dátum vrátený funkciou WORKDAY. Vidíte? Všetky dátumy! Ak nechcete vyfarbiť víkendy a sviatky, musíte to Excelu explicitne povedať. Takže do nášho vzorca pridáme ďalšie dve podmienky:
- Funkcia WEEKDAY na vylúčenie víkendov: WEEKDAY($B2, 2)<6
- Funkcia COUNTIF na vylúčenie sviatkov: COUNTIF($A$2:$A$3, $B2)=0
Ako ukazuje nasledujúci obrázok, 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)
Ako vidíte, funkcie WORKDAY a WORKDAY.INTL umožňujú rýchly a jednoduchý výpočet pracovných dní v programe Excel. Samozrejme, vaše reálne vzorce budú pravdepodobne zložitejšie, ale znalosť základov vám nesmierne pomôže, pretože si môžete zapamätať len malú sadu podstatných vecí a zvyšok odvodiť. Ďakujem za prečítanie a dúfam, že sa na našom blogu uvidíme budúci týždeň!