Excelin WORKDAY- ja NETWORKDAYS-toiminnot työpäivien laskemiseksi.

  • Jaa Tämä
Michael Brown

Tässä lyhyessä opetusohjelmassa selitetään Excelin NETWORKDAYS- ja WORKDAY-funktioiden käyttö työpäivien laskemiseen mukautetuilla viikonloppuparametreilla ja lomilla.

Microsoft Excel tarjoaa kaksi erityisesti arkipäivien laskemiseen suunniteltua funktiota - TYÖPÄIVÄ ja VERKKOPÄIVÄT.

The TYÖPÄIVÄ palauttaa päivämäärän, joka on N työpäivää tulevaisuudessa tai menneisyydessä, ja sen avulla voit lisätä tai vähentää työpäiviä tiettyyn päivämäärään.

Käyttämällä NETWORKDAYS funktiolla voit laskea kahden määrittämäsi päivämäärän välisten työpäivien määrän.

Excel 2010:ssä ja sitä uudemmissa versioissa on saatavilla tehokkaampia muunnoksia edellä mainituista funktioista, WORKDAY.INTL ja NETWORKDAYS.INTL, joiden avulla voit määrittää, mitkä ja kuinka monta päivää ovat viikonloppupäiviä.

Tutustutaan nyt tarkemmin kuhunkin funktioon ja katsotaan, miten voit käyttää sitä työpäivien laskemiseen Excel-taulukoissa.

    Excelin WORKDAY-toiminto

    Excelin WORKDAY-funktio palauttaa päivämäärän, joka on tietty määrä työpäiviä ennen tai ennen aloituspäivää. Se ei ota huomioon viikonloppuja eikä määrittämiäsi vapaapäiviä.

    WORKDAY-toiminto on tarkoitettu työpäivien, virstanpylväiden ja eräpäivien laskemiseen tavanomaisen työkalenterin mukaan, jolloin lauantai ja sunnuntai ovat viikonloppupäiviä.

    WORKDAY on sisäänrakennettu toiminto Excel 2007 - 365:ssä. Aikaisemmissa versioissa sinun on otettava käyttöön Analysis ToolPak.

    Kun käytät WORKDAY-ohjelmaa Excelissä, sinun on syötettävä seuraavat argumentit:

    TYÖPÄIVÄ(alkupäivä, päivät, [juhlapyhät])

    Kaksi ensimmäistä argumenttia ovat pakollisia ja viimeinen on valinnainen:

    • Start_date - päivämäärä, josta alkaen arkipäivien laskeminen aloitetaan.
    • Päivät - työpäivien määrä, joka lisätään tai vähennetään start_date-päivämäärästä. Positiivinen luku palauttaa tulevan päivämäärän, negatiivinen luku palauttaa menneen päivämäärän.
    • Lomat - valinnainen luettelo päivämääristä, joita ei pidä laskea työpäiviksi. Tämä voi olla joko solualue, joka sisältää päivämäärät, jotka haluat jättää laskelmien ulkopuolelle, tai päivämääriä edustavien sarjanumeroiden vakiojoukko.

    Nyt kun tunnet perusasiat, katsotaanpa, miten voit käyttää WORKDAY-funktiota Excel-taulukoissa.

    Kuinka käyttää WORKDAY:tä työpäivien lisäämiseen/vähentämiseen päivämäärään?

    Voit laskea työpäivät Excelissä noudattamalla seuraavia yksinkertaisia sääntöjä:

    • Osoitteeseen lisää työpäiviä, anna positiivinen luku päivät WORKDAY-kaavan argumentti.
    • Osoitteeseen vähennä työpäiviä, käytä negatiivista numeroa päivät argumentti.

    Oletetaan, että sinulla on alkupäivä solussa A2, luettelo lomapäivistä soluissa B2:B5 ja haluat selvittää päivämäärät 30 arkipäivää tulevaisuudessa ja menneisyydessä. Voit tehdä tämän käyttämällä seuraavia kaavoja:

    Lisätään 30 työpäivää alkamispäivään, lukuun ottamatta lomapäiviä B2:B5-kohdissa:

    = TYÖPÄIVÄ(A2, 30, B2:B5)

    Aloituspäivästä vähennetään 30 työpäivää, lukuun ottamatta lomapäiviä kohdissa B2:B5:

    = TYÖPÄIVÄ(A2, -30, B2:B5)

    Laskettaessa arkipäiviä perustuen nykyinen päivämäärä , käytä TODAY()-funktiota aloituspäivämääränä:

    Lisätä 30 työpäivää tämän päivän päivämäärään:

    =WORKDAY(TODAY(), 30)

    Vähentää 30 työpäivää tämän päivän päivämäärästä:

    =WORKDAY(TODAY(), -30)

    Jos haluat syöttää alkupäivämäärän suoraan kaavaan, käytä DATE-toimintoa:

    =WORKDAY(DATE(2015,5,6), 30)

    Seuraavassa kuvakaappauksessa näkyy kaikkien näiden ja muutaman muun WORKDAY-kaavan tulokset:

    Ja luonnollisesti voit syöttää työpäivien lukumäärän, joka lisätään / vähennetään aloituspäivämäärästä, johonkin soluun ja viitata sitten kyseiseen soluun kaavassa. Esimerkiksi:

    = TYÖPÄIVÄ(A2, C2)

    Kun A2 on alkupäivä ja C2 on alkupäivää jäljessä (negatiiviset luvut) tai edellä (positiiviset luvut) olevien viikonloppuun kuulumattomien päivien lukumäärä, eikä lomapäiviä oteta huomioon.

    Vihje. Excel 365:ssä ja 2021:ssä voit käyttää WORKDAY:tä yhdessä SEQUENCE:n kanssa työpäivien sarjan luomiseen.

    Excel WORKDAY.INTL -funktio

    WORKDAY.INTL on tehokkaampi muunnos WORKDAY-funktiosta, joka toimii seuraavien funktioiden kanssa mukautetut viikonlopun parametrit Kuten WORKDAY, se palauttaa päivämäärän, joka on tietty määrä arkipäiviä tulevaisuudessa tai menneisyydessä, mutta antaa sinun määrittää, mitkä viikonpäivät katsotaan viikonloppupäiviksi.

    WORKDAY.INTL-toiminto otettiin käyttöön Excel 2010:ssä, joten se ei ole käytettävissä aiemmissa Excel-versioissa.

    Excelin WORKDAY.INTL-funktion syntaksi on seuraava:

    WORKDAY.INTL(alkupäivä, päivät, [viikonloppu], [juhlapyhät])

    Kaksi ensimmäistä argumenttia vaaditaan, ja ne muistuttavat WORKDAY:n argumentteja:

    Start_date - alkuperäinen päivämäärä.

    Päivät - työpäivien määrä ennen (negatiivinen arvo) tai jälkeen (positiivinen arvo) alkamispäivää. Jos arvo on päivät argumentti annetaan desimaalilukuna, se typistetään kokonaisluvuksi.

    Kaksi viimeistä argumenttia ovat valinnaisia:

    Viikonloppu - määrittää, mitkä arkipäivät lasketaan viikonloppupäiviksi. Tämä voi olla joko numero tai merkkijono, kuten alla on esitetty.

    Numero Viikonloppupäivät
    1 tai jätetty pois Lauantai, sunnuntai
    2 Sunnuntai, maanantai
    3 Maanantai, tiistai
    4 Tiistai, keskiviikko
    5 Keskiviikko, torstai
    6 Torstai, perjantai
    7 Perjantai, lauantai
    11 Vain sunnuntaisin
    12 Vain maanantaisin
    13 Vain tiistaina
    14 Vain keskiviikko
    15 Vain torstaina
    16 Vain perjantaisin
    17 Vain lauantaisin

    Viikonlopun merkkijono - seitsemän 0:n ja 1:n sarja, joka edustaa seitsemää viikonpäivää, alkaen maanantaista. 1 edustaa ei-työpäivää ja 0 edustaa työpäivää. Esim:

    • "0000011" - Lauantai ja sunnuntai ovat viikonloppuja.
    • "1000001" - Maanantai ja sunnuntai ovat viikonloppuja.

    Ensisilmäyksellä viikonloppujonot saattavat vaikuttaa tarpeettomilta, mutta itse pidän tästä menetelmästä enemmän, koska voit tehdä viikonloppujonon lennossa ilman, että sinun tarvitsee muistaa mitään numeroita.

    Lomat - valinnainen luettelo päivämääristä, jotka haluat jättää työpäiväkalenterin ulkopuolelle. Tämä voi olla päivämääriä sisältävä solualue tai kyseisiä päivämääriä edustavien sarja-arvojen vakiojoukko.

    WORKDAY.INTL:n käyttäminen Excelissä - kaavaesimerkkejä

    Äsken käsittelemämme melko suuri osa teoriasta saattaa vaikuttaa melko monimutkaiselta ja hämmentävältä, mutta kaavojen kokeileminen tekee asioista todella helppoja.

    Lasketaan työpäivät ja mukautetut viikonloput tietokokonaisuudessamme, jonka alkamispäivä on solussa A2 ja lomien luettelo soluissa A5:A8.

    Osoitteeseen lisää 30 työpäivää alkamispäivään, perjantai ja lauantai lasketaan viikonlopuiksi ja lomapäiviä ei oteta huomioon A5:A8:ssa:

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

    tai

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

    Osoitteeseen vähennä 30 työpäivää alkamispäivästä, sunnuntai ja maanantai lasketaan viikonlopuiksi ja lomapäiviä ei oteta huomioon A5:A8:ssa:

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

    tai

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

    Jos haluat lisätä 10 työpäivää nykyinen päivämäärä Sunnuntai on ainoa viikonloppupäivä, ei vapaapäiviä:

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

    tai

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

    Excel-taulukkosi kaavat voivat näyttää samankaltaisilta:

    Huomautus. Sekä Excelin WORKDAY- että WORKDAY.INTL-funktiot palauttavat päivämääriä kuvaavat sarjanumerot. Jotta nämä numerot näkyvät päivämäärinä, valitse numerot sisältävä solu ja paina Ctrl+1 avataksesi sarjanumerot. Solujen muotoilu dialogi. Numero välilehti, valitse Päivämäärä vuonna Luokka ja valitse haluamasi päivämäärämuoto. Yksityiskohtaiset vaiheet ovat kohdassa Päivämäärämuodon muuttaminen Excelissä.

    Excel WORKDAY ja WORKDAY.INTL -virheet

    Jos Excelin WORKDAY- tai WORKDAY.INTL-kaava palauttaa virheen, syy on todennäköisesti jokin seuraavista:

    #NUM! virhe tapahtuu, jos joko:

    • yhdistelmä start_date ja päivät argumentit johtavat virheelliseen päivämäärään, tai
    • viikonloppu WORKDAY.INTL-funktion argumentti on virheellinen.

    #VALUE! virhe tapahtuu, jos joko:

    • start_date tai mikä tahansa arvo kohdassa lomat ei ole voimassa oleva päivämäärä, tai
    • päivät argumentti ei ole numeerinen.

    Excel NETWORKDAYS-toiminto

    Excelin NETWORKDAYS-funktio palauttaa kahden päivämäärän välisten työpäivien määrän, lukuun ottamatta viikonloppuja ja valinnaisesti määrittämiäsi vapaapäiviä.

    Excelin NETWORKDAYSin syntaksi on intuitiivinen ja helposti muistettava:

    NETWORKDAYS(alkupäivä, loppupäivä, [juhlapyhät])

    Kaksi ensimmäistä argumenttia ovat pakollisia ja kolmas on valinnainen:

    • Start_date - alkupäivä, josta alkaen työpäivien laskeminen aloitetaan.
    • End_date - sen jakson lopussa, jonka työpäiviä lasket.

    Sekä alku- että loppupäivä lasketaan palautettuun työpäivien määrään.

    • Lomat - valinnainen luettelo vapaapäivistä, joita ei lasketa työpäiviksi.

    Kuinka käyttää NETWORKDAYSia Excelissä - kaavaesimerkki

    Oletetaan, että sinulla on luettelo lomapäivistä soluissa A2:A5, alkamispäivämäärät sarakkeessa B ja päättymispäivämäärät sarakkeessa C, ja haluat tietää, kuinka monta työpäivää näiden päivämäärien välissä on. Sopiva NETWORKDAYS-kaava on helppo keksiä:

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

    Huomaa, että Excelin NETWORKDAYS-funktio palauttaa positiivisen arvon, kun alkupäivämäärä on pienempi kuin loppupäivämäärä, ja negatiivisen arvon, jos loppupäivämäärä on uudempi kuin alkupäivämäärä (kuten rivillä 5):

    Excel NETWORKDAYS.INTL -funktio

    Kuten NETWORKDAYS, Excelin NETWORKDAYS.INTL-funktio laskee kahden päivämäärän välisten arkipäivien määrän, mutta voit määrittää, mitkä päivät lasketaan viikonloppupäiviksi.

    NETWORKDAYS.INTL-funktion syntaksi on hyvin samankaltainen kuin NETWORKDAYS-funktion, paitsi että siinä on ylimääräinen [weekend]-parametri, joka ilmoittaa, mitkä viikonpäivät lasketaan viikonlopuiksi.

    NETWORKDAYS.INTL( alkupäivä, loppupäivä, [viikonloppu], [juhlapyhät] )

    The viikonloppu argumentti voi hyväksyä joko numeron tai merkkijonon. Numerot ja viikonlopun merkkijonot ovat täsmälleen samat kuin komennossa viikonloppu WORKDAY.INTL-funktion parametri.

    NETWORKDAYS.INTL-toiminto on käytettävissä Excel 365 - 2010 -ohjelmassa.

    Käyttämällä NETWORKDAYS.INTL Excelissä - kaavaesimerkki

    Lasketaan edellisen esimerkin päivämääräluettelon avulla kahden päivämäärän väliin jäävien työpäivien lukumäärä, kun sunnuntai on ainoa viikonloppupäivä. Tätä varten kirjoitetaan numero 11 kenttään viikonloppu argumentti NETWORKDAYS.INTL-kaavaan tai tee merkkijono, joka koostuu kuudesta 0:sta ja yhdestä 1:stä ("0000001"):

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

    Tai

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

    Seuraava kuvakaappaus osoittaa, että molemmat kaavat antavat täysin identtiset tulokset.

    Kuinka korostaa työpäiviä Excelissä

    WORKDAY- ja WORKDAY.INTL-funktioiden avulla voit paitsi laskea työpäiviä Excel-taulukoissa myös korostaa niitä liiketoimintalogiikkasi edellyttämällä tavalla. Tätä varten luot ehdollisen muotoilusäännön, jossa on joko WORKDAY- tai WORKDAY.INTL-kaava.

    Korostetaan esimerkiksi sarakkeessa B olevasta päivämääräluettelosta vain ne tulevat päivämäärät, jotka ovat 15 arkipäivän sisällä tämän päivän päivämäärästä, lukuun ottamatta kahta vapaapäivää soluissa A2:A3. Ilmeisin mieleen tuleva kaava on seuraava:

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

    Loogisen testin ensimmäisessä osassa katkaistaan menneet päivämäärät, eli tarkistetaan, onko päivämäärä yhtä suuri tai suurempi kuin tänään: $B2>TODAY(). Toisessa osassa tarkistetaan, onko päivämäärä enintään 15 arkipäivän päässä tulevaisuudessa, viikonloppupäiviä ja määriteltyjä vapaapäiviä lukuun ottamatta: $B2<=WORKDAY(TODAY(), 15, $A$2:$A$3)

    Kaava näyttää oikealta, mutta kun luot siihen perustuvan säännön, huomaat, että se korostaa vääriä päivämääriä:

    Yritetään selvittää, miksi näin tapahtuu. Ongelma ei ole WORKDAY-funktiossa, kuten joku saattaa päätellä. Funktio on oikea, mutta... mitä se oikeastaan tekee? Se palauttaa päivämäärän, joka on 15 arkipäivän päässä tästä hetkestä, lukuun ottamatta viikonloppupäiviä (lauantai ja sunnuntai) ja vapaapäiviä soluissa A2:A3.

    Okei, ja mitä tähän kaavaan perustuva sääntö tekee? Se korostaa KAIKKI päivämäärät, jotka ovat yhtä suuria tai suurempia kuin tänään ja pienempiä kuin WORKDAY-funktion palauttama päivämäärä. Näetkö? Kaikki päivämäärät! Jos et halua värittää viikonloppuja ja vapaapäiviä, sinun on nimenomaisesti kerrottava Excelille, ettei se tee niin. Lisäämme kaavaan siis kaksi ehtoa lisää:

    • WEEKDAY-funktio viikonloppujen poissulkemiseksi: WEEKDAY($B2, 2)<6
    • COUNTIF-funktio lomien poissulkemiseksi: COUNTIF($A$2:$A$3, $B2)=0

    Kuten alla oleva kuvakaappaus osoittaa, parannettu kaava toimii täydellisesti:

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

    Kuten näet, WORKDAY- ja WORKDAY.INTL-funktiot tekevät työpäivien laskemisesta Excelissä nopeaa ja helppoa. Tietenkin todellisen elämän kaavat ovat todennäköisesti monimutkaisempia, mutta perusasioiden tunteminen auttaa valtavasti, koska voit muistaa vain pienen joukon olennaisia asioita ja johtaa loput. Kiitän lukemisesta ja toivon, että näemme blogissamme ensi viikolla!

    Michael Brown on omistautunut teknologian harrastaja, jolla on intohimo yksinkertaistaa monimutkaisia ​​prosesseja ohjelmistotyökalujen avulla. Yli vuosikymmenen kokemuksella teknologia-alalta hän on hionut taitojaan Microsoft Excelissä ja Outlookissa sekä Google Sheetsissä ja Docsissa. Michaelin blogi on omistettu jakamaan tietojaan ja asiantuntemustaan ​​muiden kanssa, ja se tarjoaa helposti seurattavia vinkkejä ja opetusohjelmia tuottavuuden ja tehokkuuden parantamiseksi. Olitpa kokenut ammattilainen tai aloittelija, Michaelin blogi tarjoaa arvokkaita oivalluksia ja käytännön neuvoja, joiden avulla saat kaiken irti näistä tärkeistä ohjelmistotyökaluista.