Indholdsfortegnelse
Denne korte vejledning forklarer brugen af Excel-funktionerne NETWORKDAYS og WORKDAY til at beregne arbejdsdage med brugerdefinerede weekendparametre og helligdage.
Microsoft Excel indeholder to funktioner, der er specielt designet til at beregne ugedage - WORKDAY og NETWORKDAYS.
ARBEJDSDAG funktionen returnerer en dato N arbejdsdage i fremtiden eller i fortiden, og du kan bruge den til at tilføje eller fratrække arbejdsdage til en given dato.
Brug af den NETWORKDAYS funktionen kan du beregne antallet af arbejdsdage mellem to datoer, som du angiver.
I Excel 2010 og nyere versioner er der mere effektive modifikationer af de ovennævnte funktioner, WORKDAY.INTL og NETWORKDAYS.INTL, som giver dig mulighed for at definere, hvilke og hvor mange dage der er weekenddage.
Lad os nu se nærmere på hver enkelt funktion og se, hvordan du kan bruge den til at beregne arbejdsdage i dine Excel-regneark.
Excel WORKDAY-funktionen
Excel-funktionen WORKDAY returnerer en dato, der ligger et givent antal arbejdsdage før eller forud for startdatoen. Den udelukker weekender samt eventuelle helligdage, du angiver.
Funktionen WORKDAY er beregnet til at beregne arbejdsdage, milepæle og forfaldsdatoer baseret på standardarbejdskalenderen, hvor lørdag og søndag er weekenddage.
WORKDAY er en indbygget funktion i Excel 2007 - 365. I tidligere versioner skal du aktivere Analysis ToolPak.
Når du bruger WORKDAY i Excel, skal du indtaste følgende argumenter:
WORKDAY(start_dato, dage, [helligdage])De to første argumenter er obligatoriske, og det sidste er valgfrit:
- Start_dato - den dato, fra hvilken man skal begynde at tælle hverdage.
- Dage - antallet af arbejdsdage, der skal lægges til/trækkes fra start_date. Et positivt tal returnerer en fremtidig dato, et negativt tal returnerer en tidligere dato.
- Ferie - en valgfri liste over datoer, der ikke skal medregnes som arbejdsdage. Dette kan enten være en række celler, der indeholder de datoer, som du ønsker at udelukke fra beregninger, eller en arraykonstant med de løbenumre, der repræsenterer datoerne.
Nu hvor du kender det grundlæggende, kan vi se, hvordan du kan bruge funktionen WORKDAY i dine Excel-regneark.
Sådan bruger du WORKDAY til at tilføje/fradrage arbejdsdage til dato
Du kan beregne arbejdsdage i Excel ved at følge disse enkle regler:
- Til tilføj arbejdsdage, skal du angive et positivt tal som dage argument i en WORKDAY-formel.
- Til trække fra arbejdsdage, skal du bruge et negativt tal i dage argument.
Hvis du har en startdato i celle A2, en liste over helligdage i cellerne B2:B5, og du ønsker at finde frem til datoerne 30 arbejdsdage i fremtiden og tidligere. Du kan gøre dette ved hjælp af følgende formler:
For at tilføje 30 arbejdsdage til startdatoen, eksklusive helligdage i B2:B5:
=ARBEJDSDAG(A2, 30, B2:B5)
For at trække 30 arbejdsdage fra startdatoen, eksklusive helligdage i B2:B5, fra:
=ARBEJDSDAG(A2, -30, B2:B5)
For at beregne hverdage baseret på den nuværende dato , bruge funktionen TODAY() som startdato:
Hvis du vil tilføje 30 arbejdsdage til dagens dato:
=ARBEJDSDAG(I DAG(), 30)
For at trække 30 arbejdsdage fra dagens dato:
=ARBEJDSDAG(I DAG(), -30)
Hvis du vil angive startdatoen direkte i formlen, skal du bruge funktionen DATE:
=ARBEJDSDAG(DATO(2015,5,6), 30)
Følgende skærmbillede viser resultaterne af alle disse og et par andre WORKDAY-formler:
Og du kan naturligvis indtaste antallet af arbejdsdage, der skal lægges til/trækkes fra startdatoen, i en celle og derefter henvise til denne celle i din formel, f.eks:
=ARBEJDSDAG(A2, C2)
Hvor A2 er startdatoen, og C2 er antallet af dage uden weekend, der ligger bagud (negative tal) eller foran (positive tal) startdatoen, uden at udelukke helligdage.
Tip. I Excel 365 og 2021 kan du bruge WORKDAY i kombination med SEQUENCE til at generere en række arbejdsdage.
Excel WORKDAY.INTL-funktionen
WORKDAY.INTL er en mere kraftfuld ændring af WORKDAY-funktionen, der fungerer med brugerdefinerede weekendparametre Ligesom WORKDAY returnerer den en dato, der ligger et bestemt antal arbejdsdage i fremtiden eller i fortiden, men giver dig mulighed for at bestemme, hvilke dage i ugen der skal betragtes som weekenddage.
Funktionen WORKDAY.INTL blev indført i Excel 2010 og er derfor ikke tilgængelig i tidligere Excel-versioner.
Syntaksen for Excel-funktionen WORKDAY.INTL er som følger:
WORKDAY.INTL(start_dato, dage, [weekend], [helligdage])De to første argumenter er nødvendige og svarer til WORKDAY's:
Start_dato - den oprindelige dato.
Dage - antallet af arbejdsdage før (negativ værdi) eller efter (positiv værdi) startdatoen. Hvis den dage
argumentet angives som et decimaltal, afkortes det til et heltal.
De sidste to argumenter er valgfrie:
Weekend - angiver, hvilke ugedage der skal tælles som weekenddage. Dette kan være enten et tal eller en streng, som vist nedenfor.
Nummer | Weekenddage |
1 eller udeladt | Lørdag, søndag |
2 | Søndag, mandag |
3 | Mandag, tirsdag |
4 | Tirsdag, onsdag |
5 | Onsdag, torsdag |
6 | Torsdag, fredag |
7 | Fredag, lørdag |
11 | Kun søndag |
12 | Kun mandag |
13 | Kun tirsdag |
14 | Kun onsdag |
15 | Kun torsdag |
16 | Kun fredag |
17 | Kun om lørdagen |
Weekend streng - en serie af syv 0'er og 1'er, der repræsenterer syv ugedage, begyndende med mandag. 1 repræsenterer en arbejdsfri dag og 0 repræsenterer en arbejdsdag. F.eks:
- "0000011" - Lørdag og søndag er weekender.
- "1000001" - Mandag og søndag er weekender.
Ved første øjekast kan weekendstrenge virke overflødige, men jeg kan personligt bedre lide denne metode, fordi du kan lave en weekendstreng i farten uden at skulle huske numre.
Ferie - en valgfri liste over datoer, som du ønsker at udelukke fra arbejdsdagskalenderen. Dette kan være en række celler, der indeholder datoerne, eller en arraykonstant af de serielle værdier, der repræsenterer disse datoer.
Brug af WORKDAY.INTL i Excel - eksempler på formler
Den store mængde teori, som vi lige har diskuteret, kan virke ret kompliceret og forvirrende, men hvis du prøver at bruge formler, bliver det hele meget nemmere.
Lad os beregne arbejdsdage med brugerdefinerede weekender på vores datasæt med startdatoen i celle A2 og en liste over helligdage i A5:A8.
Til tilføj 30 arbejdsdage til startdatoen, fredag og lørdag regnes som weekender og helligdage i A5:A8 ikke medregnet:
=WORKDAY.INTL(A2, 30, 7, A5:A8)
eller
=WORKDAY.INTL(A2, 30, "0000110", A5:A8)
Til trække fra 30 arbejdsdage fra startdatoen, søndag og mandag regnes som weekender og helligdage i A5:A8 ikke medregnet:
=WORKDAY.INTL(A2, -30, 2, A5:A8)
eller
=WORKDAY.INTL(A2, -30, "1000001", A5:A8)
For at tilføje 10 arbejdsdage til den nuværende dato , søndag er den eneste weekenddag, og der er ingen helligdage:
=WORKDAY.INTL(TODAY(), 10, 11)
eller
=WORKDAY.INTL(A2, 10, "0000001")
I dit Excel-ark kan formlerne se således ud:
Bemærk. Både Excel-funktionerne WORKDAY og WORKDAY.INTL returnerer serienumre, der repræsenterer datoerne. For at få disse tal vist som datoer skal du markere cellerne med tallene og trykke på Ctrl+1 for at åbne Formater celler dialog. På den Nummer skal du vælge Dato i den Kategori listen, og vælg det ønskede datoformat. Du kan finde detaljerede trin i Sådan ændrer du datoformatet i Excel.
Excel WORKDAY og WORKDAY.INTL fejl
Hvis din Excel-formel WORKDAY eller WORKDAY.INTL returnerer en fejl, er årsagen sandsynligvis en af følgende:
#NUM! fejl opstår, hvis enten:
- en kombination af de
start_dato
ogdage
argumenter resulterer i en ugyldig dato, eller weekend
argumentet i funktionen WORKDAY.INTL er ugyldigt.
#VALUE! fejl opstår, hvis enten:
start_dato
eller enhver værdi iferie
ikke er en gyldig dato, ellerdage
argumentet er ikke-numerisk.
Excel NETWORKDAYS-funktionen
Funktionen NETWORKDAYS i Excel returnerer antallet af arbejdsdage mellem to datoer, eksklusive weekender og eventuelt de helligdage, du angiver.
Syntaksen i Excel NETWORKDAYS er intuitiv og nem at huske:
NETWORKDAYS(start_dato, slut_dato, [helligdage])De to første argumenter er obligatoriske, og det tredje er valgfrit:
- Start_dato - første dato, fra hvilken arbejdsdage skal begynde at blive talt.
- End_date - ved udgangen af den periode, for hvilken du tæller arbejdsdage.
Både start- og slutdatoen tæller med i det returnerede antal arbejdsdage.
- Ferie - en valgfri liste over helligdage, der ikke skal medregnes som arbejdsdage.
Sådan bruger du NETWORKDAYS i Excel - eksempel på en formel
Lad os sige, at du har en liste over helligdage i cellerne A2:A5, startdatoer i kolonne B og slutdatoer i kolonne C, og du vil vide, hvor mange arbejdsdage der er mellem disse datoer. Den relevante NETWORKDAYS-formel er nem at finde ud af:
=NETWORKDAYS(B2, C2, $A$2:$A$5)
Bemærk, at Excel-funktionen NETWORKDAYS returnerer en positiv værdi, hvis startdatoen er mindre end slutdatoen, og en negativ værdi, hvis slutdatoen er nyere end startdatoen (som i række 5):
Excel NETWORKDAYS.INTL-funktionen
Ligesom NETWORKDAYS beregner Excel's funktion NETWORKDAYS.INTL antallet af ugedage mellem to datoer, men du kan angive, hvilke dage der skal tælles som weekenddage.
Syntaksen for funktionen NETWORKDAYS.INTL er meget lig NETWORKDAYS', bortset fra at den har den ekstra parameter [weekend], der angiver, hvilke ugedage der skal tælles som weekender.
NETWORKDAYS.INTL( start_dato, slut_dato, [weekend], [helligdage] ) weekend
kan acceptere enten et tal eller en streng. Tallene og weekendstrengene er nøjagtig de samme som i weekend
parameteren i funktionen WORKDAY.INTL.
Funktionen NETWORKDAYS.INTL er tilgængelig i Excel 365 - 2010.
Brug af NETWORKDAYS.INTL i Excel - eksempel på en formel
Lad os bruge listen over datoer fra det foregående eksempel til at beregne antallet af arbejdsdage mellem to datoer, hvor søndag er den eneste weekenddag. For at gøre dette skriver du nummer 11 i feltet weekend
argumentet i din NETWORKDAYS.INTL-formel eller lav en streng med seks 0'er og en 1 ("0000001"):
=NETWORKDAYS.INTL(B2, C2, 11, $A$2:$A$5)
Eller
=NETWORKDAYS.INTL(B2, C2, "0000001", $A$2:$A$5)
Følgende skærmbillede viser, at begge formler giver fuldstændig identiske resultater.
Sådan fremhæver du arbejdsdage i Excel
Ved hjælp af funktionerne WORKDAY og WORKDAY.INTL kan du ikke blot beregne arbejdsdage i dine Excel-regneark, men også fremhæve dem, som din forretningslogik kræver. Du opretter en betinget formateringsregel med enten en WORKDAY- eller WORKDAY.INTL-formel.
Lad os f.eks. i en liste over datoer i kolonne B kun fremhæve fremtidige datoer, der ligger inden for 15 arbejdsdage fra dagens dato, eksklusive to helligdage i cellerne A2:A3. Den mest indlysende formel, der falder mig ind, er følgende:
=AND($B2>TODAY(), $B2<=WORKDAY(TODAY(), 15, $A$2:$A$3)))
Den første del af den logiske test udelukker tidligere datoer, dvs. du kontrollerer, om en dato er lig med eller større end i dag: $B2>TODAY(). Og i den anden del kontrollerer du, om en dato ligger højst 15 ugedage i fremtiden, eksklusive weekenddage og angivne helligdage: $B2<=WORKDAY(TODAY(), 15, $A$2:$A$3)
Formlen ser korrekt ud, men når du opretter en regel baseret på den, vil du opdage, at den fremhæver forkerte datoer:
Lad os prøve at finde ud af, hvorfor det sker. Problemet er ikke med funktionen WORKDAY, som nogen måske vil konkludere. Funktionen er korrekt, men... hvad gør den egentlig? Den returnerer en dato 15 arbejdsdage fra nu af, eksklusive weekenddage (lørdag og søndag) og helligdage i cellerne A2:A3.
Okay, og hvad gør reglen baseret på denne formel? Den fremhæver ALLE datoer, der er lig med eller større end i dag og mindre end den dato, der returneres af funktionen WORKDAY. Kan du se? Alle datoerne! Hvis du ikke ønsker at farve weekender og helligdage, skal du udtrykkeligt fortælle Excel, at det ikke skal ske. Vi tilføjer derfor to betingelser mere til vores formel:
- Funktionen WEEKDAY til at udelukke weekender: WEEKDAY($B2, 2)<6
- COUNTIF-funktionen til at udelukke helligdage: COUNTIF($A$2:$A$3, $B2)=0
Som det fremgår af nedenstående skærmbillede, fungerer den forbedrede formel perfekt:
=AND($B2>TODAY(), $B2<=WORKDAY(TODAY(), 15, $A$2:$A$3), COUNTIF($A$2:$A$3, $B2)=0, WEEKDAY($B2, 2)<6)
Som du kan se, gør funktionerne WORKDAY og WORKDAY.INTL det nemt og hurtigt at beregne arbejdsdage i Excel. Selvfølgelig vil dine formler i det virkelige liv sandsynligvis være mere sofistikerede, men det hjælper enormt at kende det grundlæggende, fordi du kun kan huske et lille sæt væsentlige ting og udlede resten. Jeg takker for din læsning og håber at se dig på vores blog i næste uge!