ERLANDSEN DATA CONSULTING Excel & VBA Tips   Information in English / Informasjon på engelsk

Disse websidene oppdateres ikke lengre og er kun tilgjengelig for historikken sin skyld.

Klikk her for å gå til den oppdaterte informasjonen.

Beregne det riktige ukenummeret

Funksjonen UKENUMMER() i tillegget Analyseverktøy beregner riktig ukenummer for en angitt dato, hvis du er i U.S.A. Den brukerdefinerte funksjonen nedenfor vil beregne det korrekte ukenummeret avhengig av de nasjonale språkinnstillingene på den enkelte datamaskin.

Function UDFWeekNum(InputDate As Date)
    UDFWeekNum = DatePart("ww", InputDate, vbUseSystemDayOfWeek, vbUseSystem)
End Function
Funksjonen ovenfor kan endres slik at den beregner det riktige ukenummeret på europeisk vis:
Function UDFWeekNumISO(InputDate As Date)
    UDFWeekNumISO = DatePart("ww", InputDate, vbMonday, vbFirstFourDays)
End Function

De to VBA-funksjonene ovenfor fungerer greit bortsett fra noen enkelte år hvor de returnerer feil ukenummer i forbindelse med datoer rundt årsskiftet. Dette gjelder bl.a. årene 1907, 1919, 1991, 2003, 2007, 2019 og 2091. Du kan benytte denne regnearkformelen for å beregne det riktige ukenummeret:

=HELTALL((A1-(DATO(ÅR(A1+(REST(8-UKEDAG(A1);7)-3));1;1))-3+
REST(UKEDAG(DATO(ÅR(A1+(REST(8-UKEDAG(A1);7)-3));1;1))+1;7))/7)+1
Formelen ovenfor forutsetter at celle A1 inneholder en gyldig dato som du vil returnere ukenummert for.

For å beregne ukenummeret korrekt med en VBA-funksjon kan man benytte funksjonen nedenfor:
Function WEEKNR(InputDate As Long) As Integer
Dim A As Integer, B As Integer, C As Long, D As Integer
    WEEKNR = 0
    If InputDate < 1 Then Exit Function
    A = Weekday(InputDate, vbSunday)
    B = Year(InputDate + ((8 - A) Mod 7) - 3)
    C = DateSerial(B, 1, 1)
    D = (Weekday(C, vbSunday) + 1) Mod 7
    WEEKNR = Int((InputDate - C - 3 + D) / 7) + 1
End Function

 

Dokumentet er sist oppdatert 2000-04-14 12:42:26      Utskriftsvennlig versjon

Brukerkommentarer:
Runar fra 3145 Tjøme skrev (2005-02-05 13:59:12 CET):
Takk for hjelp
Har plundra lenge med en funksjon for å finne riktig ukenummer i excel. Holder på med turnus, og da var dette til god hjelp.

 

Erlandsen Data Consulting     http://www.erlandsendata.no/   
Excel & VBA Tips   Copyright ©1999-2017    Ole P. Erlandsen   All rights reserved
E-post kontaktadresse