Cuprins
Acest scurt tutorial explică utilizarea funcțiilor Excel NETWORKDAYS și WORKDAY pentru a calcula zilele lucrătoare cu parametrii personalizați de weekend și sărbători.
Microsoft Excel pune la dispoziție două funcții special concepute pentru calcularea zilelor săptămânii - WORKDAY și NETWORKDAYS.
The ZIUA DE LUCRU returnează o dată cu N zile lucrătoare în viitor sau în trecut și o puteți utiliza pentru a adăuga sau a scădea zile lucrătoare la o anumită dată.
Utilizarea ZILE DE REȚEAUA puteți calcula numărul de zile lucrătoare dintre două date pe care le specificați.
În Excel 2010 și versiunile ulterioare, sunt disponibile modificări mai puternice ale funcțiilor menționate mai sus, WORKDAY.INTL și NETWORKDAYS.INTL, care vă permit să definiți care și câte zile sunt zile de weekend.
Și acum, haideți să analizăm mai îndeaproape fiecare funcție și să vedem cum o puteți utiliza pentru a calcula zilele lucrătoare în foile de calcul Excel.
Funcția Excel WORKDAY
Funcția Excel WORKDAY returnează o dată care este cu un anumit număr de zile lucrătoare înainte sau în avans față de data de început. Aceasta exclude weekend-urile, precum și orice sărbători pe care le specificați.
Funcția WORKDAY este destinată calculării zilelor de lucru, a etapelor și a datelor scadente pe baza calendarului standard de lucru, sâmbăta și duminica fiind zilele de weekend.
WORKDAY este o funcție încorporată în Excel 2007 - 365. În versiunile anterioare, trebuie să activați Analysis ToolPak.
Atunci când utilizați WORKDAY în Excel, trebuie să introduceți următoarele argumente:
WORKDAY(start_date, days, [holidays])Primele două argumente sunt obligatorii, iar ultimul este opțional:
- Data_începutului - data de la care se începe să se numere zilele săptămânii.
- Zile - numărul de zile lucrătoare care se adaugă la/scoate din start_date. Un număr pozitiv indică o dată viitoare, iar un număr negativ indică o dată trecută.
- Sărbători - o listă opțională de date care nu ar trebui să fie luate în considerare ca zile lucrătoare. Aceasta poate fi fie un interval de celule care conțin datele pe care doriți să le excludeți din calcule, fie o matrice constantă de numere de serie care reprezintă datele.
Acum că știți elementele de bază, să vedem cum puteți utiliza funcția WORKDAY în foile de calcul Excel.
Cum se utilizează WORKDAY pentru a adăuga / scădea zilele lucrătoare la o dată
Pentru a calcula zilele lucrătoare în Excel, urmați aceste reguli simple:
- La adăugați zile lucrătoare, introduceți un număr pozitiv ca număr zile argument al unei formule WORKDAY.
- La se sustrage zile lucrătoare, utilizați un număr negativ în rubrica zile argument.
Să presupunem că aveți o dată de început în celula A2, o listă de sărbători în celulele B2:B5 și doriți să aflați datele a 30 de zile lucrătoare din viitor și din trecut. Puteți face acest lucru folosind următoarele formule:
Pentru a adăuga 30 de zile lucrătoare la data de începere, cu excepția zilelor de sărbătoare din B2:B5:
=WORKDAY(A2, 30, B2:B5)
Pentru a scădea 30 de zile lucrătoare de la data de începere, cu excepția zilelor de sărbătoare din B2:B5:
=WORKDAY(A2, -30, B2:B5)
Pentru a calcula zilele săptămânii pe baza data curentă , utilizați funcția TODAY() ca dată de început:
Pentru a adăuga 30 de zile lucrătoare la data de astăzi:
=WORKDAY(TODAY(), 30)
Pentru a scădea 30 de zile lucrătoare din data de astăzi:
=WORKDAY(TODAY(), -30)
Pentru a furniza data de început direct în formulă, utilizați funcția DATE:
=WORKDAY(DATA(2015,5,6), 30)
Următoarea captură de ecran demonstrează rezultatele tuturor acestor formule și ale altor câteva formule WORKDAY:
Și, bineînțeles, puteți introduce numărul de zile lucrătoare pe care să le adăugați/suprimați din data de început într-o celulă și apoi să vă referiți la acea celulă în formula dvs. De exemplu:
=WORKDAY(A2, C2)
Unde A2 este data de început și C2 este numărul de zile din afara weekend-ului în urmă (numere negative) sau în avans (numere pozitive) față de data de început, fără a exclude sărbătorile.
Sfat. În Excel 365 și 2021, puteți utiliza WORKDAY în combinație cu SEQUENCE pentru a genera o serie de zile lucrătoare.
Funcția Excel WORKDAY.INTL
WORKDAY.INTL este o modificare mai puternică a funcției WORKDAY care lucrează cu parametrii personalizați de weekend La fel ca și WORKDAY, acesta returnează o dată care este un număr specificat de zile lucrătoare în viitor sau în trecut, dar vă permite să determinați ce zile ale săptămânii trebuie considerate zile de weekend.
Funcția WORKDAY.INTL a fost introdusă în Excel 2010 și, prin urmare, nu este disponibilă în versiunile anterioare ale Excel.
Sintaxa funcției Excel WORKDAY.INTL este următoarea:
WORKDAY.INTL(start_date, days, [weekend], [holidays])Primele două argumente sunt obligatorii și sunt asemănătoare cu cele din WORKDAY:
Data_începutului - data inițială.
Zile - numărul de zile lucrătoare înainte (valoare negativă) sau după (valoare pozitivă) data de începere. În cazul în care se utilizează zile
este furnizat ca număr zecimal, acesta este trunchiat la numărul întreg.
Ultimele două argumente sunt opționale:
Weekend - specifică ce zile din săptămână trebuie să fie considerate zile de weekend. Acesta poate fi un număr sau un șir de caractere, după cum se arată mai jos.
Număr | Zile de weekend |
1 sau omis | Sâmbătă, duminică |
2 | Duminică, luni |
3 | Luni, marți |
4 | Marți, Miercuri |
5 | Miercuri, Joi |
6 | Joi, vineri |
7 | Vineri, sâmbătă |
11 | Numai duminică |
12 | Numai luni |
13 | Numai marți |
14 | Numai miercuri |
15 | Numai joi |
16 | Numai vineri |
17 | Numai sâmbătă |
Șir de weekend - o serie de șapte cifre 0 și 1 care reprezintă șapte zile ale săptămânii, începând cu luni. 1 reprezintă o zi nelucrătoare, iar 0 reprezintă o zi lucrătoare. De exemplu:
- "0000011" - sâmbătă și duminică sunt weekend-uri.
- "1000001" - Luni și duminică sunt weekend-uri.
La prima vedere, șirurile de weekend pot părea superflue, dar mie personal îmi place mai mult această metodă, deoarece puteți face un șir de weekend din mers, fără a fi nevoie să rețineți numere.
Sărbători - o listă opțională de date pe care doriți să le excludeți din calendarul zilelor lucrătoare. Aceasta poate fi un interval de celule care conțin datele sau o constantă de matrice a valorilor seriale care reprezintă aceste date.
Utilizarea WORKDAY.INTL în Excel - exemple de formule
Ei bine, mare parte din teoria pe care tocmai am discutat-o poate părea destul de complicată și confuză, dar încercând să vă descurcați cu formulele, lucrurile vor deveni foarte simple.
În setul nostru de date, cu data de început în celula A2 și o listă de sărbători în A5:A8, să calculăm zilele lucrătoare cu weekenduri personalizate.
La adăugați 30 de zile lucrătoare până la data de începere, vineri și sâmbătă sunt considerate weekenduri, iar sărbătorile din A5:A8 sunt excluse:
=WORKDAY.INTL(A2, 30, 7, A5:A8)
sau
=WORKDAY.INTL(A2, 30, "0000110", A5:A8)
La se sustrage 30 de zile lucrătoare de la data începerii activității, duminica și lunea sunt considerate weekenduri, iar sărbătorile din A5:A8 sunt excluse:
=WORKDAY.INTL(A2, -30, 2, A5:A8)
sau
=WORKDAY.INTL(A2, -30, "1000001", A5:A8)
Pentru a adăuga 10 zile lucrătoare la data curentă , duminica fiind singura zi de weekend, fără sărbători:
=WORKDAY.INTL(TODAY(), 10, 11)
sau
=WORKDAY.INTL(A2, 10, "0000001")
În foaia Excel, formulele pot arăta astfel:
Notă. Atât funcțiile Excel WORKDAY, cât și WORKDAY.INTL returnează numere de serie reprezentând datele. Pentru a obține aceste numere afișate ca date, selectați celulele cu numere și apăsați Ctrl+1 pentru a deschide fereastra Formatarea celulelor Dialog. pe pagina Număr fila, selectați Data în Categoria și alegeți formatul de dată dorit. Pentru pași detaliați, consultați Cum să schimbați formatul datei în Excel.
Erori Excel WORKDAY și WORKDAY.INTL
Dacă formula Excel WORKDAY sau WORKDAY.INTL returnează o eroare, motivul este probabil unul dintre următoarele:
#NUM! eroarea apare dacă:
- o combinație între
start_date
șizile
are ca rezultat o dată invalidă, sau weekend
din funcția WORKDAY.INTL nu este valid.
#VALOARE! eroarea apare dacă:
start_date
sau orice valoare dinsărbători
nu este o dată valabilă sauzile
nu este numeric.
Funcția Excel NETWORKDAYS
Funcția NETWORKDAYS din Excel returnează numărul de zile lucrătoare dintre două date, excluzând weekend-urile și, opțional, sărbătorile pe care le specificați.
Sintaxa Excel NETWORKDAYS este intuitivă și ușor de reținut:
NETWORKDAYS(data_începutului, data_finalului, [holidays])Primele două argumente sunt obligatorii, iar al treilea este opțional:
- Data_începutului - data inițială de la care se începe să se numere zilele lucrătoare.
- End_date - sfârșitul perioadei pentru care se numără zilele lucrătoare.
Atât data de început, cât și data de sfârșit sunt luate în calcul în numărul de zile lucrătoare returnate.
- Sărbători - o listă opțională de zile de sărbătoare care nu ar trebui să fie considerate zile lucrătoare.
Cum se utilizează NETWORKDAYS în Excel - exemplu de formulă
Să spunem că aveți o listă de sărbători în celulele A2:A5, datele de început în coloana B, datele de sfârșit în coloana C și doriți să știți câte zile lucrătoare sunt între aceste date. Formula NETWORKDAYS corespunzătoare este ușor de găsit:
=NETWORKDAYS(B2, C2, $A$2:$A$5)
Observați că funcția Excel NETWORKDAYS returnează o valoare pozitivă atunci când data de început este mai mică decât data de sfârșit și o valoare negativă dacă data de sfârșit este mai recentă decât data de început (ca în rândul 5):
Funcția Excel NETWORKDAYS.INTL
La fel ca și funcția NETWORKDAYS, funcția NETWORKDAYS.INTL din Excel calculează numărul de zile lucrătoare dintre două date, dar vă permite să specificați ce zile trebuie să fie considerate zile de weekend.
Sintaxa funcției NETWORKDAYS.INTL este foarte asemănătoare cu cea a funcției NETWORKDAYS, cu excepția faptului că are un parametru suplimentar [weekend] care indică ce zile ale săptămânii ar trebui să fie considerate weekenduri.
NETWORKDAYS.INTL( start_date, end_date, [weekend], [holidays] ) The weekend
poate accepta fie un număr, fie un șir de caractere. Numerele și șirurile de weekend sunt exact aceleași ca și în cazul weekend
al funcției WORKDAY.INTL.
Funcția NETWORKDAYS.INTL este disponibilă în Excel 365 - 2010.
Folosind NETWORKDAYS.INTL în Excel - exemplu de formulă
Utilizând lista de date din exemplul anterior, să calculăm numărul de zile lucrătoare dintre două date în care duminica este singura zi de weekend. Pentru aceasta, se tastează numărul 11 în fereastra weekend
din formula NETWORKDAYS.INTL sau faceți un șir de șase 0 și un 1 ("0000001"):
=NETWORKDAYS.INTL(B2, C2, 11, $A$2:$A$5)
Sau
=NETWORKDAYS.INTL(B2, C2, "0000001", $A$2:$A$5)
Următoarea captură de ecran dovedește că ambele formule oferă rezultate absolut identice.
Cum se evidențiază zilele lucrătoare în Excel
Cu ajutorul funcțiilor WORKDAY și WORKDAY.INTL, puteți nu numai să calculați zilele lucrătoare în foile de calcul Excel, ci și să le evidențiați în funcție de cerințele logicii de afaceri. Pentru aceasta, creați o regulă de formatare condiționată cu o formulă WORKDAY sau WORKDAY.INTL.
De exemplu, într-o listă de date din coloana B, să evidențiem numai datele viitoare care se află în termen de 15 zile lucrătoare de la data de astăzi, cu excepția a două sărbători din celulele A2:A3. Cea mai evidentă formulă care ne vine în minte este următoarea:
=AND($B2>TODAY(), $B2<=WORKDAY(TODAY(), 15, $A$2:$A$3)))
Prima parte a testului logic elimină datele din trecut, adică se verifică dacă o dată este mai mare sau egală cu ziua de azi: $B2>TODAY(). În a doua parte, se verifică dacă o dată nu este mai mult de 15 zile lucrătoare în viitor, cu excepția zilelor de weekend și a sărbătorilor specificate: $B2<=WORKDAY(TODAY(), 15, $A$2:$A$3)
Formula pare corectă, dar odată ce creați o regulă bazată pe ea, vă veți da seama că evidențiază date greșite:
Să încercăm să ne dăm seama de ce se întâmplă acest lucru. Problema nu este cu funcția WORKDAY, așa cum ar putea concluziona cineva. Funcția este corectă, dar... ce face de fapt? Aceasta returnează o dată la 15 zile lucrătoare de acum înainte, excluzând zilele de weekend (sâmbătă și duminică) și sărbătorile din celulele A2:A3.
Bine, și ce face regula bazată pe această formulă? Evidențiază TOATE datele care sunt egale sau mai mari decât ziua de astăzi și mai mici decât data returnată de funcția WORKDAY. Vedeți? Toate datele! Dacă nu doriți să colorați weekendurile și sărbătorile, atunci trebuie să îi spuneți în mod explicit lui Excel să nu o facă. Așadar, adăugăm încă două condiții la formula noastră:
- Funcția WEEKDAY pentru a exclude weekend-urile: WEEKDAY($B2, 2)<6
- Funcția COUNTIF pentru a exclude sărbătorile: COUNTIF($A$2:$A$3, $B2)=0
După cum se demonstrează în captura de ecran de mai jos, formula îmbunătățită funcționează perfect:
=AND($B2>TODAY(), $B2<=WORKDAY(TODAY(), 15, $A$2:$A$3), COUNTIF($A$2:$A$3, $B2)=0, WEEKDAY($B2, 2)<6)
După cum vedeți, funcțiile WORKDAY și WORKDAY.INTL fac calculul zilelor lucrătoare în Excel rapid și ușor. Desigur, formulele din viața reală vor fi probabil mai sofisticate, dar cunoașterea noțiunilor de bază ajută enorm, deoarece puteți reține doar un set mic de lucruri esențiale și să derivați restul. Vă mulțumesc pentru lectură și sper să ne vedem pe blog săptămâna viitoare!