DateDif i SharePoint
Formlen til en beregnet kolonne i SharePoint, der regner forskellen mellem to datoer ud uden weekenderne.
Funktionen til at beregne forskellen mellem to datoer i en beregnet kolonne, uden at medtage weekends. Beregnede kolonner i SharePoint har ikke Excels NETWORKDAYS, så antallet af hverdage må regnes ud med DATEDIF og WEEKDAY.
=(DATEDIF([Start Date];[End Date];"D"))-INT(DATEDIF([Start Date];[End Date];"D")/7)*2-IF((WEEKDAY([End Date])-WEEKDAY([Start Date]))<0;2;0)+1
Sådan virker formlen#
DATEDIF([Start Date];[End Date];"D") giver antallet af dage mellem de to datoer. Fra mandag til fredag i samme uge er det 4.
INT(…/7)*2 trækker to dage fra for hver hele uge i perioden. En hel uge rummer altid præcis én weekend.
IF((WEEKDAY([End Date])-WEEKDAY([Start Date]))<0;2;0) tager sig af den sidste, ufuldstændige uge. WEEKDAY nummererer ugens dage fra 1 (søndag) til 7 (lørdag). Er slutdagens nummer mindre end startdagens, fx fra torsdag til tirsdag, går perioden hen over en weekend, og der trækkes to dage mere fra.
+1 gør, at begge dage tælles med. Mandag til fredag giver 5 hverdage, ikke 4, og samme dag giver 1.
Kolonnen#
Kolonnen oprettes under listens indstillinger som en ny kolonne af typen Calculated (calculation based on other columns). Formlen sættes ind, og resultattypen skal være Number med 0 decimaler. [Start Date] og [End Date] er de to datokolonner på listen og udskiftes med listens egne kolonnenavne, i kantede parenteser.
Skilletegnet mellem argumenterne følger webstedets sprog- og områdeindstillinger. Med danske indstillinger er det ;, som i formlen her. Med engelske er det ,. SharePoint skifter selv skilletegnet i en gemt formel, hvis indstillingen ændres bagefter.
Afprøvning#
Formlens regnestykke afprøvet på datoer i september 2026, hvor den 21. er en mandag:
| Start | Slut | Formlen giver | Rigtigt antal hverdage |
|---|---|---|---|
| man 21.9. | fre 25.9. | 5 | 5 |
| man 21.9. | man 21.9. | 1 | 1 |
| fre 25.9. | man 28.9. | 2 | 2 |
| man 21.9. | fre 2.10. | 10 | 10 |
| man 21.12. | fre 1.1.2027 | 10 | 10 |
| lør 19.9. | fre 25.9. | 5 | 5 |
| man 21.9. | søn 27.9. | 5 | 5 |
| man 21.9. | lør 26.9. | 6 | 5 |
| søn 20.9. | fre 25.9. | 6 | 5 |
| søn 20.9. | lør 26.9. | 7 | 5 |
| lør 26.9. | lør 26.9. | 1 | 0 |
| man 28.9. | man 21.9. | #NUM! | – |
Når både start og slut er hverdage, er formlen rigtig, også over mange uger og hen over et årsskifte. Den tæller en dag for meget, når perioden starter en søndag eller slutter en lørdag. Start på en lørdag eller slut på en søndag går godt.
Begrænsninger#
- Helligdage tælles med som hverdage. En juledag på en onsdag er en arbejdsdag for formlen, og en beregnet kolonne kan ikke slå op i en liste over helligdage.
- Start efter slut giver fejlen
#NUM!, fordiDATEDIFikke regner baglæns. Det samme gør en tom slutdato. - Søndag som start eller lørdag som slut giver en dag for meget, som vist ovenfor.
Rettet udgave#
Denne variant er ikke fra 2015. Den er den oprindelige formel med to rettelser: der trækkes en dag fra, når starten er en søndag, og en dag, når slutningen er en lørdag. Den er desuden pakket ind i ISERROR, så en fejl giver en tom celle i stedet for #NUM!:
=IF(ISERROR(DATEDIF([Start Date];[End Date];"D"));"";(DATEDIF([Start Date];[End Date];"D"))-INT(DATEDIF([Start Date];[End Date];"D")/7)*2-IF((WEEKDAY([End Date])-WEEKDAY([Start Date]))<0;2;0)+1-IF(WEEKDAY([Start Date])=1;1;0)-IF(WEEKDAY([End Date])=7;1;0))
Regnestykket er afprøvet mod en optælling dag for dag på 320.000 datopar med en afstand fra 0 til 399 dage og giver det rigtige antal hverdage i dem alle. Helligdage er stadig ikke trukket fra.
Kilder#
- Calculated Field Formulas (Microsoft Learn): skilletegnet
,eller;, og at SharePoint selv skifter det. - Examples of common formulas in lists (Microsoft Support):
DATEDIFogWEEKDAYi lister. - WEEKDAY function (Microsoft Support): 1 er søndag, og 7 er lørdag.
- DATEDIF function (Microsoft Support):
#NUM!, når startdatoen ligger efter slutdatoen.