"Excel" funkcijos WORKDAY ir NETWORKDAYS darbo dienoms apskaičiuoti

  • Pasidalinti
Michael Brown

Š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 ir dienos 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, arba
    • dienos 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ę!

    Michaelas Brownas yra atsidavęs technologijų entuziastas, mėgstantis supaprastinti sudėtingus procesus naudojant programinės įrangos įrankius. Turėdamas daugiau nei dešimtmetį patirtį technologijų pramonėje, jis patobulino savo įgūdžius „Microsoft Excel“ ir „Outlook“, taip pat „Google“ skaičiuoklėse ir dokumentuose. Michaelio tinklaraštis skirtas dalytis savo žiniomis ir patirtimi su kitais, jame pateikiami lengvai įgyvendinami patarimai ir vadovėliai, kaip pagerinti produktyvumą ir efektyvumą. Nesvarbu, ar esate patyręs profesionalas, ar pradedantysis, Michaelo tinklaraštyje rasite vertingų įžvalgų ir praktinių patarimų, kaip išnaudoti visas šių pagrindinių programinės įrangos įrankių galimybes.