Sisällysluettelo
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
japä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 kohdassalomat
ei ole voimassa oleva päivämäärä, taipä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!