Turinys
Šioje trumpoje pamokoje paaiškinama, kaip naudoti "Excel" funkcijas NETWORKDAYS ir WORKDAY darbo dienoms su pasirinktiniais savaitgalio parametrais ir švenčių dienomis apskaičiuoti.
"Microsoft Excel" turi dvi specialiai savaitės dienoms skaičiuoti skirtas funkcijas - WORKDAY ir NETWORKDAYS.
Svetainė DARBO DIENA funkcija grąžina datą N darbo dienų į ateitį arba į praeitį ir ją galite naudoti norėdami pridėti arba atimti darbo dienas prie tam tikros datos.
Naudojant NETWORKDAYS funkcija galite apskaičiuoti darbo dienų skaičių tarp dviejų nurodytų datų.
Programoje "Excel 2010" ir naujesnėse versijose yra galingesnės minėtų funkcijų modifikacijos: WORKDAY.INTL ir NETWORKDAYS.INTL, kurios leidžia nustatyti, kurios ir kiek dienų yra savaitgalio dienos.
Dabar atidžiau apžvelkime kiekvieną funkciją ir pažiūrėkime, kaip ją galima naudoti darbo dienoms apskaičiuoti "Excel" darbalapiuose.
"Excel" funkcija WORKDAY
Funkcija Excel WORKDAY grąžina datą, kuri yra tam tikru darbo dienų skaičiumi anksčiau arba anksčiau už pradžios datą. Į ją neįtraukiami savaitgaliai ir visos jūsų nurodytos šventinės dienos.
Funkcija WORKDAY skirta darbo dienoms, etapams ir terminams apskaičiuoti pagal standartinį darbo kalendorių, kai šeštadienis ir sekmadienis yra savaitgalio dienos.
DARBO DIENA yra integruota funkcija programoje "Excel 2007-365". Ankstesnėse versijose reikia įjungti "Analysis ToolPak".
Naudodami WORKDAY programoje "Excel" turite įvesti šiuos argumentus:
WORKDAY(start_date, days, [holidays])Pirmieji 2 argumentai yra privalomi, o paskutinysis - neprivalomas:
- Start_date - data, nuo kurios pradedamos skaičiuoti darbo dienos.
- Dienos - darbo dienų skaičius, kurį reikia pridėti prie start_date / atimti iš start_date. Teigiamas skaičius grąžina būsimą datą, neigiamas skaičius grąžina praėjusią datą.
- Atostogos - neprivalomas datų, kurios neturėtų būti įskaičiuojamos į darbo dienas, sąrašas. Tai gali būti arba langelių, kuriuose yra datos, kurių norite neįtraukti į skaičiavimus, intervalas, arba datas žyminčių eilės numerių masyvo konstanta.
Dabar, kai jau žinote pagrindus, pažiūrėkime, kaip galite naudoti funkciją WORKDAY savo "Excel" darbalapiuose.
Kaip naudoti WORKDAY, norint pridėti / atimti darbo dienas prie datos
Norėdami apskaičiuoti darbo dienas "Excel" programoje, vadovaukitės šiomis paprastomis taisyklėmis:
- Į pridėti darbo dienų, įveskite teigiamą skaičių kaip dienos WORKDAY formulės argumentas.
- Į atimti darbo dienomis, naudokite neigiamą skaičių dienos argumentas.
Tarkime, kad ląstelėje A2 turite pradžios datą, ląstelėse B2:B5 - švenčių dienų sąrašą, o ląstelėse B2:B5 norite sužinoti 30 darbo dienų datas ateityje ir praeityje. Tai galite padaryti naudodami šias formules:
Pridėti 30 darbo dienų prie pradžios datos, neįskaitant B2:B5 esančių švenčių dienų:
=DARBO DIENA(A2, 30, B2:B5)
Atimti 30 darbo dienų nuo pradžios datos, neįskaitant B2:B5 nurodytų švenčių dienų:
=DARBO DIENA(A2, -30, B2:B5)
Darbo dienų skaičiavimas pagal dabartinė data , kaip pradžios datą naudokite funkciją TODAY():
Jei norite prie šiandienos datos pridėti 30 darbo dienų:
=DARBO DIENA(TODAY(), 30)
Iš šiandienos datos atimti 30 darbo dienų:
=DARBO DIENA(TODAY(), -30)
Jei norite pradžios datą į formulę įrašyti tiesiogiai, naudokite funkciją DATA:
=DARBO DIENA(DATA(2015,5,6), 30)
Toliau pateiktoje ekrano nuotraukoje matyti visų šių ir dar kelių DARBO DIENOS formulių rezultatai:
Žinoma, darbo dienų skaičių, kurį reikia pridėti prie pradžios datos arba atimti iš jos, galite įrašyti į kurią nors ląstelę, o tada į tą ląstelę daryti nuorodą formulėje. Pavyzdžiui:
=DARBO DIENA(A2, C2)
Kai A2 - pradžios data, o C2 - ne savaitgalio dienų skaičius po (neigiami skaičiai) arba prieš (teigiami skaičiai) pradžios datą, neįskaitant švenčių dienų.
Patarimas. Programose "Excel 365" ir 2021 galite naudoti WORKDAY (darbo diena) kartu su SEQUENCE (seka), kad sukurtumėte darbo dienų seriją.
"Excel" funkcija WORKDAY.INTL
WORKDAY.INTL yra galingesnė WORKDAY funkcijos modifikacija, veikianti su pasirinktiniai savaitgalio parametrai . Kaip ir WORKDAY, ji grąžina datą, kuri yra nurodytas darbo dienų skaičius ateityje arba praeityje, tačiau leidžia nustatyti, kurios savaitės dienos turėtų būti laikomos savaitgalio dienomis.
Funkcija WORKDAY.INTL įdiegta "Excel 2010", todėl ankstesnėse "Excel" versijose jos nėra.
"Excel" funkcijos WORKDAY.INTL sintaksė yra tokia:
WORKDAY.INTL(start_date, days, [weekend], [holidays])Pirmieji du argumentai yra privalomi ir panašūs į WORKDAY argumentus:
Start_date - pradinė data.
Dienos - darbo dienų skaičius iki (neigiama reikšmė) arba po (teigiama reikšmė) pradžios datos. Jei dienos
argumentas pateikiamas kaip dešimtainis skaičius, jis sutrumpinamas iki sveikojo skaičiaus.
Paskutiniai du argumentai yra neprivalomi:
Savaitgalis - nurodo, kurios savaitės dienos turėtų būti skaičiuojamos kaip savaitgalio dienos. Tai gali būti skaičius arba eilutė, kaip parodyta toliau.
Numeris | Savaitgalio dienos |
1 arba praleista | Šeštadienis, sekmadienis |
2 | Sekmadienis, pirmadienis |
3 | Pirmadienis, antradienis |
4 | Antradienis, trečiadienis |
5 | Trečiadienis, ketvirtadienis |
6 | Ketvirtadienis, penktadienis |
7 | Penktadienis, šeštadienis |
11 | Tik sekmadienį |
12 | Tik pirmadienį |
13 | Tik antradienį |
14 | Tik trečiadienį |
15 | Tik ketvirtadienį |
16 | Tik penktadienį |
17 | Tik šeštadienį |
Savaitgalio eilutė - septynių 0 ir 1 skaičių seka, žyminti septynias savaitės dienas, pradedant pirmadieniu. 1 reiškia nedarbo dieną, o 0 - darbo dieną. pvz:
- "0000011" - šeštadienis ir sekmadienis yra savaitgaliai.
- "1000001" - pirmadienis ir sekmadienis yra savaitgaliai.
Iš pirmo žvilgsnio savaitgalio eilutės gali atrodyti nereikalingos, tačiau man asmeniškai šis metodas patinka labiau, nes savaitgalio eilutę galite sukurti akimirksniu, neprisimindami jokių skaičių.
Atostogos - neprivalomas datų, kurių norite neįtraukti į darbo dienų kalendorių, sąrašas. Tai gali būti langelių, kuriuose yra datos, intervalas arba šias datas žyminčių serijinių reikšmių masyvo konstanta.
WORKDAY.INTL naudojimas programoje "Excel" - formulių pavyzdžiai
Ką tik aptarta didelė teorijos dalis gali atrodyti gana sudėtinga ir paini, tačiau išbandę formules galėsite viską labai palengvinti.
Mūsų duomenų rinkinyje, kurio pradžios data yra ląstelėje A2, o švenčių dienų sąrašas yra ląstelėse A5:A8, apskaičiuokime darbo dienas su pasirinktiniais savaitgaliais.
Į pridėti 30 darbo dienų iki darbo pradžios datos, penktadienis ir šeštadienis skaičiuojami kaip savaitgaliai, o švenčių dienos A5:A8 neįskaičiuojamos:
=WORKDAY.INTL(A2, 30, 7, A5:A8)
arba
=WORKDAY.INTL(A2, 30, "0000110", A5:A8)
Į atimti 30 darbo dienų nuo darbo pradžios datos, sekmadienis ir pirmadienis skaičiuojami kaip savaitgaliai, o švenčių dienos A5:A8 neįskaičiuojamos:
=WORKDAY.INTL(A2, -30, 2, A5:A8)
arba
=WORKDAY.INTL(A2, -30, "1000001", A5:A8)
Norėdami pridėti 10 darbo dienų prie dabartinė data , sekmadienis yra vienintelė savaitgalio diena, švenčių dienų nėra:
=WORKDAY.INTL(TODAY(), 10, 11)
arba
=WORKDAY.INTL(A2, 10, "0000001")
Jūsų "Excel" lape formulės gali atrodyti panašiai:
Pastaba: "Excel" funkcijos WORKDAY ir WORKDAY.INTL grąžina datas žyminčius eilės numerius. Norėdami, kad šie numeriai būtų rodomi kaip datos, pasirinkite langelius su numeriais ir paspauskite Ctrl+1, kad atidarytumėte Formuoti ląsteles dialogas. Numeris skirtuką, pasirinkite Data į Kategorija sąrašą ir pasirinkite norimą datos formatą. Išsamios instrukcijos pateikiamos skyriuje Kaip pakeisti datos formatą "Excel" programoje.
"Excel" WORKDAY ir WORKDAY.INTL klaidos
Jei "Excel" formulė WORKDAY arba WORKDAY.INTL grąžina klaidą, tikėtina, kad priežastis yra viena iš šių:
#NUM! klaida įvyksta, jei:
- derinys
start_date
irdienos
argumentai, todėl data yra negaliojanti, arba savaitgalis
funkcijos WORKDAY.INTL argumentas negalioja.
#VALUE! klaida įvyksta, jei:
start_date
arba bet kurią reikšmę, esančiąatostogos
nėra galiojanti data, arbadienos
argumentas yra neskaitmeninis.
"Excel" funkcija NETWORKDAYS
"Excel" funkcija NETWORKDAYS grąžina darbo dienų skaičių tarp dviejų datų, neįskaitant savaitgalių ir pasirinktinai nurodytų švenčių dienų.
"Excel" NETWORKDAYS sintaksė yra intuityvi ir lengvai įsimenama:
NETWORKDAYS(pradžios_data, pabaigos_data, [šventės])Pirmieji du argumentai yra privalomi, o trečiasis - neprivalomas:
- Start_date - pradinė data, nuo kurios pradedamos skaičiuoti darbo dienos.
- End_date - laikotarpio, kurio darbo dienas skaičiuojate, pabaiga.
Į grąžinamą darbo dienų skaičių įskaičiuojama ir pradžios, ir pabaigos data.
- Atostogos - neprivalomas sąrašas švenčių dienų, kurios neturėtų būti įskaičiuojamos į darbo dienas.
Kaip naudoti "NETWORKDAYS" programoje "Excel" - formulės pavyzdys
Tarkime, turite švenčių sąrašą ląstelėse A2:A5, pradžios datas B stulpelyje, pabaigos datas C stulpelyje ir norite sužinoti, kiek darbo dienų yra tarp šių datų. Tinkamą formulę NETWORKDAYS nesunku nustatyti:
=NETWORKDAYS(B2, C2, $A$2:$A$5)
Atkreipkite dėmesį, kad "Excel" funkcija NETWORKDAYS grąžina teigiamą reikšmę, kai pradžios data yra mažesnė už pabaigos datą, ir neigiamą reikšmę, jei pabaigos data yra vėlesnė už pradžios datą (kaip 5 eilutėje):
"Excel" funkcija NETWORKDAYS.INTL
Kaip ir NETWORKDAYS, "Excel" funkcija NETWORKDAYS.INTL apskaičiuoja savaitės dienų skaičių tarp dviejų datų, tačiau galite nurodyti, kurios dienos turėtų būti skaičiuojamos kaip savaitgalio dienos.
Funkcijos NETWORKDAYS.INTL sintaksė yra labai panaši į NETWORKDAYS, tik turi papildomą parametrą [weekend], kuris nurodo, kurios savaitės dienos turėtų būti skaičiuojamos kaip savaitgaliai.
NETWORKDAYS.INTL( pradžios_data, pabaigos_data, [savaitgalis], [šventės] ) Svetainė savaitgalis
argumentas gali būti skaičius arba eilutė. Skaičiai ir savaitgalio eilutės yra lygiai tokie patys, kaip ir savaitgalis
funkcijos WORKDAY.INTL parametras.
Funkciją NETWORKDAYS.INTL galima naudoti programoje "Excel 365" - 2010.
NETWORKDAYS.INTL naudojimas "Excel" programoje - formulės pavyzdys
Naudodami ankstesniame pavyzdyje pateiktą datų sąrašą, apskaičiuokime darbo dienų skaičių tarp dviejų datų, kai sekmadienis yra vienintelė savaitgalio diena. Tam įveskite skaičių 11 į savaitgalis
NETWORKDAYS.INTL formulės argumentą arba sukurkite šešių 0 ir vieno 1 ("0000001") eilutę:
=NETWORKDAYS.INTL(B2, C2, 11, $A$2:$A$5)
Arba
=NETWORKDAYS.INTL(B2, C2, "0000001", $A$2:$A$5)
Toliau pateikta ekrano nuotrauka įrodo, kad abi formulės duoda visiškai vienodus rezultatus.
Kaip pažymėti darbo dienas "Excel" programoje
Naudodami funkcijas WORKDAY ir WORKDAY.INTL galite ne tik apskaičiuoti darbo dienas "Excel" darbalapiuose, bet ir jas paryškinti, kaip to reikalauja jūsų verslo logika. Šiuo tikslu sukurkite sąlyginio formatavimo taisyklę su formule WORKDAY arba WORKDAY.INTL.
Pavyzdžiui, B stulpelyje esančiame datų sąraše pažymėkime tik būsimas datas, kurios yra per 15 darbo dienų nuo šiandienos datos, išskyrus dvi švenčių dienas, esančias ląstelėse A2:A3. Akivaizdžiausia formulė, kuri ateina į galvą, yra tokia:
=AND($B2>TODAY(), $B2<=DARBO DIENA(TODAY(), 15, $A$2:$A$3))
Pirmoje loginio testo dalyje atmetamos praeities datos, t. y. tikrinama, ar data yra lygi arba didesnė už šiandien: $B2>TODAY(). O antroje dalyje tikrinama, ar data yra ne daugiau kaip 15 savaitės dienų ateityje, neįskaitant savaitgalio dienų ir nurodytų švenčių dienų: $B2<=DARBO DIENA(TODAY(), 15, $A$2:$A$3)
Formulė atrodo teisinga, bet kai pagal ją sukursite taisyklę, suprasite, kad joje pažymėtos neteisingos datos:
Pabandykime išsiaiškinti, kodėl taip atsitinka. Problema yra ne su funkcija WORKDAY, kaip kas nors gali padaryti išvadą. Funkcija yra teisinga, bet... ką ji iš tikrųjų daro? Ji grąžina datą po 15 darbo dienų, neįskaitant savaitgalio dienų (šeštadienio ir sekmadienio) ir švenčių dienų, esančių ląstelėse A2:A3.
Gerai, o ką daro šia formule pagrįsta taisyklė? Ji paryškina VISAS datas, kurios yra lygios arba didesnės už šiandien ir mažesnės už datą, kurią grąžina funkcija WORKDAY. Matote? Visas datas! Jei nenorite nuspalvinti savaitgalių ir švenčių dienų, turite aiškiai nurodyti "Excel", kad to nedarytumėte. Taigi į savo formulę įtraukiame dar dvi sąlygas:
- Funkcija WEEKDAY, skirta savaitgaliams neįtraukti: WEEKDAY($B2, 2)<6
- COUNTIF funkcija, skirta šventėms pašalinti: COUNTIF($A$2:$A$3, $B2)=0
Kaip parodyta toliau pateiktoje ekrano kopijoje, patobulinta formulė veikia puikiai:
=AND($B2>TODAY(), $B2<=DARBO DIENA(TODAY(), 15, $A$2:$A$3), COUNTIF($A$2:$A$3, $B2)=0, WEEKDAY($B2, 2)<6)
Kaip matote, funkcijos WORKDAY ir WORKDAY.INTL leidžia greitai ir lengvai apskaičiuoti darbo dienas "Excel" programoje. Žinoma, tikėtina, kad realiame gyvenime jūsų formulės bus sudėtingesnės, tačiau pagrindų žinojimas labai padeda, nes galite prisiminti tik nedidelį esminių dalykų rinkinį, o likusius išvesti. Dėkoju, kad perskaitėte, ir tikiuosi pasimatyti mūsų tinklaraštyje kitą savaitę!