INHOUDSOPGAWE
Hierdie kort tutoriaal verduidelik die gebruik van Excel NETWERKDAE en WERKDAG-funksies om werksdae met pasgemaakte naweekparameters en vakansiedae te bereken.
Microsoft Excel verskaf twee funksies wat spesiaal ontwerp is vir die berekening van weeksdae - WERKDAG en NETWERKDAE.
Die WERKDAG -funksie gee 'n datum N werksdae in die toekoms of in die verlede terug en jy kan dit gebruik om werksdae by 'n gegewe datum op te tel of af te trek.
Deur die NETWERKDAE -funksie te gebruik, kan jy die aantal werksdae tussen twee datums wat jy spesifiseer, bereken.
In Excel 2010 en hoër is kragtiger wysigings van bogenoemde funksies beskikbaar, WORKDAY.INTL en NETWORKDAYS.INTL, wat jou laat definieer watter en hoeveel dae naweekdae is.
En nou, kom ons kyk noukeuriger na elke funksie en kyk hoe jy dit kan gebruik om werksdae te bereken in jou Excel-werkblaaie.
Excel WERKDAG-funksie
Die Excel-WERKDAG-funksie gee 'n datum terug wat 'n gegewe aantal werksdae is voor of voor die begindatum. Dit sluit naweke sowel as enige vakansiedae wat jy spesifiseer uit.
Die WERKDAG-funksie is bedoel vir die berekening van werksdae, mylpale en sperdatums gebaseer op die standaard werkskalender, met Saterdag en Sondag as die naweekdae.
WORKDAY is 'n ingeboude funksie in Excel 2007 - 365. In vroeër weergawes moet jy die Analise aktiveer'n klein stel noodsaaklike dinge en lei die res af. Ek bedank jou vir die lees en hoop om volgende week op ons blog te sien!
ToolPak.Wanneer jy WORKDAY in Excel gebruik, moet jy die volgende argumente invoer:
WERKDAG(begin_datum, dae, [vakansiedae])Die eerste 2 argumente word vereis en die laaste een is opsioneel :
- Begin_datum - die datum vanwaar weeksdae begin tel word.
- Dae - die aantal werksdae om by te voeg/af te trek vanaf begin_datum. 'n Positiewe getal gee 'n toekomstige datum, 'n negatiewe getal gee 'n vorige datum terug.
- Vakansiedae - 'n opsionele lys van datums wat nie as werksdae getel moet word nie. Dit kan óf 'n reeks selle wees wat die datums bevat wat jy van berekeninge wil uitsluit, óf 'n skikkingkonstante van die reeksgetalle wat die datums verteenwoordig.
Nou dat jy die basiese beginsels ken, kom ons kyk hoe jy kan die WERKDAG-funksie in jou Excel-werkblaaie gebruik.
Hoe om WERKDAG te gebruik om werksdae tot op datum op te tel/af te trek
Om werksdae in Excel te bereken, volg hierdie eenvoudige reëls:
- Om by te voeg werksdae, voer 'n positiewe getal in as die dae argument van 'n WERKDAG formule.
- Om af te trek werksdae, gebruik 'n negatiewe getal in die dae argument.
Gestel jy het 'n begindatum in sel A2, 'n lys vakansiedae in selle B2:B5, en jy wil uitvind die dateer 30 werksdae in die toekoms en verlede. Jy kan dit doen deur die volgende formules te gebruik:
Om 30 werksdae by die begindatum te voeg, uitgesluit vakansiedae inB2:B5:
=WORKDAY(A2, 30, B2:B5)
Om 30 werksdae van die begindatum af te trek, vakansiedae in B2:B5 uitgesluit:
=WORKDAY(A2, -30, B2:B5)
Om weeksdae gebaseer te bereken op die huidige datum , gebruik die TODAY()-funksie as die begindatum:
Om 30 werksdae by vandag se datum te voeg:
=WORKDAY(TODAY(), 30)
To trek 30 werksdae van vandag se datum af:
=WORKDAY(TODAY(), -30)
Om die begindatum direk aan die formule te verskaf, gebruik die DATUM-funksie:
=WORKDAY(DATE(2015,5,6), 30)
Die volgende skermkiekie demonstreer die resultate van al hierdie en nog 'n paar WERKDAG-formules:
En natuurlik kan jy die aantal werksdae invoer om by te voeg/af te trek vanaf die begindatum in een of ander sel, en verwys dan na daardie sel in jou formule. Byvoorbeeld:
=WORKDAY(A2, C2)
Waar A2 die begindatum is en C2 die aantal nie-naweekdae agter (negatiewe getalle) of voor (positiewe getalle) die begindatum is, geen vakansiedae uit te sluit.
Wenk. In Excel 365 en 2021 kan jy WORKDAY in kombinasie met SEQUENCE gebruik om 'n reeks werksdae te genereer.
Excel WORKDAY.INTL-funksie
WORKDAY.INTL is 'n kragtiger wysiging van die WORKDAY. funksie wat werk met pasgemaakte naweekparameters . Sowel as WERKDAG gee dit 'n datum terug wat 'n gespesifiseerde aantal werksdae in die toekoms of in die verlede is, maar laat jou bepaal watter dae van die week as naweekdae beskou moet word.
Die WERKDAG.INTL-funksie is bekendgestel inExcel 2010 en so is nie beskikbaar in vroeëre Excel-weergawes nie.
Die sintaksis van die Excel WORKDAY.INTL-funksie is soos volg:
WORKDAY.INTL(begin_datum, dae, [naweek], [vakansies])Die eerste twee argumente word vereis en is soortgelyk aan WERKDAG s'n:
Begin_datum - die aanvanklike datum.
Dae - die aantal werksdae voor (negatiewe waarde) of na (positiewe waarde) die begindatum. As die days
-argument as 'n desimale getal verskaf word, word dit tot die heelgetal afgekap.
Die laaste twee argumente is opsioneel:
Naweek - spesifiseer watter weeksdae moet wees as naweekdae getel. Dit kan óf 'n nommer óf 'n string wees, soos hieronder gedemonstreer.
Getal | Naweekdae |
1 of weggelaat | Saterdag, Sondag |
2 | Sondag, Maandag |
3 | Maandag, Dinsdag |
4 | Dinsdag, Woensdag |
5 | Woensdag, Donderdag |
6 | Donderdag, Vrydag |
7 | Vrydag, Saterdag |
11 | Slegs Sondag |
12 | Slegs Maandag |
13 | Slegs Dinsdag |
14 | Slegs Woensdag |
15 | Slegs Donderdag |
16 | Slegs Vrydag |
17 | Slegs Saterdag |
Naweekstring - 'n reeks van sewe 0'e en 1'e wat sewe dae van die week verteenwoordig,begin met Maandag. 1 verteenwoordig 'n nie-werksdag en 0 verteenwoordig 'n werksdag. Byvoorbeeld:
- "0000011" - Saterdag en Sondag is naweke.
- "1000001" - Maandag en Sondag is naweke.
Op die eerste oogopslag , naweekstringe lyk dalk oorbodig, maar ek persoonlik hou beter van hierdie metode, want jy kan sommer 'n naweekstring maak sonder om enige nommers te onthou.
Vakansiedae - 'n opsionele lys van datums jy wil uitsluit van die werksdagkalender. Dit kan 'n reeks selle wees wat die datums bevat, of 'n skikkingkonstante van die reekswaardes wat daardie datums verteenwoordig.
Gebruik WORKDAY.INTL in Excel - formulevoorbeelde
Wel, die redelike grootmaat Die teorie wat ons sopas bespreek het, lyk dalk nogal ingewikkeld en verwarrend, maar om jou hand aan formules te probeer, sal dinge baie maklik maak.
Op ons datastel, met die begindatum in sel A2 en 'n lys vakansiedae in A5 :A8, kom ons bereken werksdae met pasgemaakte naweke.
Om by te voeg 30 werksdae by die begindatum, Vrydag en Saterdag getel as naweke en vakansiedae in A5:A8 uitgesluit:
=WORKDAY.INTL(A2, 30, 7, A5:A8)
of
=WORKDAY.INTL(A2, 30, "0000110", A5:A8)
Om af te trek 30 werksdae vanaf die begindatum, Sondag en Maandag getel as naweke en vakansiedae in A5:A8 uitgesluit :
=WORKDAY.INTL(A2, -30, 2, A5:A8)
of
=WORKDAY.INTL(A2, -30, "1000001", A5:A8)
Om 10 werksdae by die huidige datum te voeg, Sondag is die enigste naweekdag, geenvakansies:
=WORKDAY.INTL(TODAY(), 10, 11)
of
=WORKDAY.INTL(A2, 10, "0000001")
In jou Excel-blad kan die formules soortgelyk soos hierdie lyk:
Let wel. Beide Excel WORKDAY en WORKDAY.INTL funksies gee reeksnommers terug wat die datums verteenwoordig. Om daardie nommers as datums vertoon te kry, kies die selle met die nommers en druk Ctrl+1 om die Formateer selle dialoog oop te maak. Op die Getal -oortjie, kies Datum in die Kategorie -lys, en kies die datumformaat wat jy wil hê. Vir die gedetailleerde stappe, sien asseblief Hoe om datumformaat in Excel te verander.
Excel WORKDAY en WORKDAY.INTL foute
As jou Excel WORKDAY of WORKDAY.INTL formule 'n fout gee, is die rede waarskynlik een van die volgende:
# NUM! fout kom voor as óf:
- 'n kombinasie van die
start_date
endays
argumente lei tot 'n ongeldige datum, of -
weekend
argument in die WORKDAY.INTL funksie is ongeldig .
#VALUE! -fout kom voor as óf:
-
start_date
of enige waarde inholidays
nie 'n geldige datum is nie, of -
days
argument is nie-numeries.
Excel NETWERKDAE-funksie
Die NETWERKDAE-funksie in Excel gee die aantal werksdae tussen twee datums terug, naweke uitgesluit en, opsioneel, die vakansiedae wat jy spesifiseer.
Die sintaksis van Excel NETWERKDAE is intuïtief en maklik om te onthou:
NETWERKDAE(begin_datum, einddatum, [vakansiedae])Die eerste twee argumente is verpligtend en die derde een isopsioneel:
- Begin_datum - aanvanklike datum vanwaar werksdae begin tel word.
- Einddatum - die einde van die tydperk waarvoor jy tel werksdae.
Beide die begindatum en einddatum word in die teruggestuurde aantal werksdae getel.
- Vakansiedae - 'n opsionele lys van vakansiedae wat nie as werksdae getel moet word nie.
Hoe om NETWERKDAE in Excel te gebruik - formulevoorbeeld
Kom ons sê jy het 'n lys vakansiedae in selle A2:A5, begindatums in kolom B, einddatums in kolom C, en jy wil weet hoeveel werksdae tussen hierdie datums is. Die toepaslike NETWERKDAE-formule is maklik om uit te vind:
=NETWORKDAYS(B2, C2, $A$2:$A$5)
Let op dat die Excel NETWERKDAE-funksie 'n positiewe waarde terugstuur wanneer die begindatum minder as die einddatum is, en 'n negatiewe waarde as die einddatum is meer onlangs as die begindatum (soos in ry 5):
Excel NETWORKDAYS.INTL-funksie
Soos NETWORKDAYS, Excel se NETWORKDAYS.INTL-funksie bereken die aantal weeksdae tussen twee datums, maar laat jou spesifiseer watter dae as naweekdae getel moet word.
Die sintaksis van die NETWORKDAYS.INTL-funksie is baie soortgelyk aan NETWORKDAYS', behalwe dat dit die addisionele [naweek het] ] parameter wat aandui watter dae van die week as naweke getel moet word.
NETWORKDAYS.INTL( begin_datum, einddatum, [naweek], [vakansies] ) Die weekend
-argument kan aanvaaróf 'n nommer óf 'n string. Die getalle en naweekstringe is presies dieselfde as in die weekend
-parameter van die WORKDAY.INTL-funksie.
Die NETWORKDAYS.INTL-funksie is beskikbaar in Excel 365 - 2010.
Deur NETWORKDAYS.INTL te gebruik. in Excel - formule voorbeeld
Gebruik die lys datums van die vorige voorbeeld, kom ons bereken die aantal werksdae tussen twee datums met Sondag as die enigste naweekdag. Hiervoor tik jy nommer 11 in die weekend
-argument van jou NETWORKDAYS.INTL-formule of maak 'n string van ses 0'e en een 1 ("0000001"):
=NETWORKDAYS.INTL(B2, C2, 11, $A$2:$A$5)
Of
=NETWORKDAYS.INTL(B2, C2, "0000001", $A$2:$A$5)
Die volgende skermkiekie bewys dat beide formules absoluut identiese resultate lewer.
Hoe om werksdae in Excel uit te lig
Gebruik die WORKDAY en WORKDAY.INTL funksies, kan jy nie net werksdae in jou Excel-werkblaaie bereken nie, maar dit ook uitlig soos jou besigheidslogika vereis. Hiervoor skep jy 'n voorwaardelike formateringreël met óf 'n WERKDAG óf 'n WERKDAG.INTL formule.
Byvoorbeeld, in 'n lys van datums in kolom B, laat ons net toekomstige datums uitlig wat binne 15 werksdae vanaf vandag se datum is , uitgesluit twee vakansiedae in selle A2:A3. Die mees voor die hand liggende formule wat by jou opkom is soos volg:
=AND($B2>TODAY(), $B2<=WORKDAY(TODAY(), 15, $A$2:$A$3))
Die eerste deel van die logiese toets sny vorige datums af, dit wil sê jy kyk of 'n datum gelyk is aan of groter is as vandag : $B2>VANDAG(). En in die tweede deel verifieer jyof 'n datum nie meer as 15 weeksdae in die toekoms is nie, die naweekdae en gespesifiseerde vakansiedae uitgesluit: $B2<=WORKDAY(TODAY(), 15, $A$2:$A$3)
Die formule lyk korrek, maar sodra jy 'n reël op grond daarvan geskep het, sal jy besef dat dit verkeerd uitlig datums:
Kom ons probeer uitvind hoekom dit gebeur. Die probleem is nie by die WERKDAG-funksie nie, soos iemand dalk kan aflei. Die funksie is reg, maar ... wat doen dit eintlik? Dit gee 'n datum 15 werksdae van nou af, uitgesluit naweekdae (Saterdag en Sondag) en vakansiedae in selle A2:A3.
Goed, en wat doen die reël gebaseer op hierdie formule? Dit beklemtoon AL die datums wat gelyk is aan of groter is as vandag en minder as die datum wat deur die WERKDAG-funksie teruggestuur word. Jy sien? Al die datums! As jy nie die naweke en vakansiedae wil inkleur nie, moet jy uitdruklik vir Excel sê om dit nie te doen nie. Dus, ons voeg nog twee voorwaardes by ons formule:
- Die WEEKDAY-funksie om naweke uit te sluit: WEEKDAY($B2, 2)<6
- Die COUNTIF-funksie om vakansiedae uit te sluit : COUNTIF($A$2:$A$3, $B2)=0
Soos gedemonstreer in die onderstaande skermkiekie, werk die verbeterde formule perfek:
=AND($B2>TODAY(), $B2<=WORKDAY(TODAY(), 15, $A$2:$A$3), COUNTIF($A$2:$A$3, $B2)=0, WEEKDAY($B2, 2)<6)
Soos jy sien, maak die WORKDAY- en WORKDAY.INTL-funksies die berekening van werksdae in Excel vinnig en maklik. Natuurlik sal jou werklike formules waarskynlik meer gesofistikeerd wees, maar om die basiese beginsels te ken, help geweldig, want jy kan net onthou