Beregn antal arbejdsdage

I et par tidligere artikler har jeg beskæftiget mig med dato- og tidsberegninger. Det drejer sig om artiklerne Dato- og tidsberegninger, Hvor stor en del af en periode ligger inden for et givent tidsinterval? og Omregn et antal timer til arbejdsuger, dage og timer. De to førstnævnte var faktisk de to første artikler på denne side. I denne artikel vil jeg se lidt på beregning af hvor mange arbejdsdage, der ligger inden for et givent dataointerval. Her kan man anvende funktionen ANTAL.ARBEJDSDAGE(), som har tre argumenter, Startdato, Slutdato og Feriedage, hvoraf sidstnævnte, der er valgfri, også dækker over Helligdage).

Har man startdatoen 14-8-21 (en lørdag) i A1 og slutdatoen 22-8-21 (en søndag) i A2 vil

=ANTAL.ARBEJDSDAGE(A1;A2)

give resultatet 5, nemlig de fem hverdage, der er i ugen fra den 16-8-21 til 22-8-21. Sætter vi i stedet slutdatoen til at være 30-8-21 vil resultatet som forventet blive 11 dage, da mandag den 30-8 tælles med som en arbejdsdag. Ændrer vi så startdatoen til 13-8 (fredag) vil resultatet blive 12,  da også fredagen tælles med. Altså funktionen tæller både startdato og slutdato med, hvis der ikke er tale om lørdag eller søndag. Holder jeg nu ferie i perioden, fx en forlænget weekend så jeg holder fri fra og med 20. august til og med 23. august, kan jeg skrive de relevante datoer et sted i regnearket, fx i E1 til E4 og så tilføje dette til det sidste argument i funktionen, altså

=ANTAL.ARBEJDSDAGE(A1;A2;E1:E4)),

hvilket giver resultater 10, da weekenden jo allerede er fraregnet. Datoerne for ferie/helligdage behøver ikke at udgøre en periode, men kan ligge spredt. Det er faktisk en ret enkel funktion at bruge, men den har en enkelt skavank; den går altid ud fra at weekenden er lørdag og søndag, hvilket jo ikke altid er tilfældet. Har man "weekend" på andre dage, kan man i stedet bruge funktionen =ANTAL.ARBEJSDAGE.INTL().

Denne funktion har et argument mere (som skal placeres mellem slutdato og feriedage. Argumentet "weekend" er som feriedage valgfrit. Udfyldes det ikke fungerer funktionen som ANTAL.ARBEJDSDAGE(). Men når man kommer til argumentet "weekend" vises en oversigt som i figuren til venstre. 1, som ikke vises, er standardweekend lørdag og søndag, og de øvrige giver sig selv. 16 og 17 er henholdsvis Kun fredag og Kun Lørdag. Ligger min weekend altså onsdag og torsdag, kan jeg skrive

=ANTAL.ARBEJSDAGE.INTL(A1;A1;5))

og det vil i ovenstående eksempel (startdato 14-8 og slutdato 22-8 give 7, da min lørdag og søndag nu medtælles "i begge ender" af intervallet. Hvis "weekenden ikke ligger samlet, kan jeg bruge et lille trick ved at anføre et tal (0 eller 1) for hver af ugens 7 dage, og dermed tilkendegive, hvilke dage, der arbejdes. Dette gøres ved at skrive fx "0001001" (anførselstegenene SKAL også skrives) i argumentet "weekend" hvor 0 angiver, at der er tale om en arbejdsdag, mens 1 angiver at der er tale om en fridag. Husk at ugen starter med mandag og alle syv dage skal anføres. Arbejder jeg fx kun om torsdagen, kan jeg bruge denne formel:

=ANTAL.ARBEJSDAGE.INTL(A1;A1;"1110111")

og det vil i eksemplet give 1 arbejdsdag. "feriedage" anvendes på samme måde som i ANTAL.ARBEJSDAGE(). Vil man bruge "feriedage", men ikke "weekend" skal man huske at lave et "tomt" argument:

=ANTAL.ARBEJSDAGE.INTL(A1;A1;;"E1:E4)

Vær opmærksom på, at hjælpefunktionen til Excel "påstår" at syv ettaller, "1111111" er en ulovlig streng, men det virker nu ganske fint og beregner antal arbejdsdage til 0 som forventet.

NB! Hvis arbejds- og fridage varierer fra uge til uge, må man beregne hver uge for sig, og altså bruge flere start- og slutdatoer, flere helligdags/ferielister og flere ANTAL.ARBEJSDAGE.INTL() formler, og så lægge dem alle sammen til sidst.

- Tilbage til Excel -