Våre regler
Hvis du leser innlegg på VGD du mener er i strid med våre regler (les reglene her) kan du trykke på dette symbolet over det aktuelle innlegget. VG Nett vil vurdere om innlegget skal fjernes.

Ukenummerformel

NYTT TEMA
Grammofon
GrammofonInnlegg: 2229
08.10.12 15:16

Jeg trenger en formel som beregner riktig ukenummer (1-52) for en vilkårlig dag i et vilkårlig år.

Følgende parametere er kjent:

Årstall (Å) (4 siffer)

Måned (M) (1-12)

Dagnummer (D) (1-365, ev. 1-366 hvis det er skuddår)

Ukedag (U) (1-7, søndag = 1)

Noen som har peiling?

insected
insectedInnlegg: 2670
08.10.12 16:20

Kommer an på om du trenger en akademisk eller praktisk tilnærming til problemet.

Rent praktisk er det nok enklest å sette en referansedag. En kjent mandag i et kjent årskifte, som da setter uke 1 for selvsamme år. Resten er pluss, minus, og dele med 7 for å regne seg forover og bakover siden du har årsdagen 1-365 kjent allerede.

Litt ettersom hvor langt du vil kunne regne så burde du jo inkludere skuddårsregelen som sier at skuddår skal hoppes over i tillegg til den vanlige skuddårsregelen med fire år.

RattusNorvegicus
RattusNorvegicusInnlegg: 12421
08.10.12 16:44

Skal det være etter ISO-8601 (som brukes i Norge) der første uke er den uka som første torsdag i året faller i?

http://en.wikipedia.org/wiki/ISO_8601

RattusNorvegicus
RattusNorvegicusInnlegg: 12421
08.10.12 16:59

Det eneste du trenger er Dagnummer (D) og Ukedag (U).
Dagnummer 1-366
Setter Ukedag 1-7 (mandag 1 osv.)

Heltallsdivider (dropp alt etter heltall) (Dagnummer+10-Ukedag)/7
I engelsk Excel gjøres dette som følger: Trunc((D+10-U)/7)

Ellers er det bygget inn i Excel en funksjon som heter ukenummer eller noe slikt.
Engelsk excel: WEEKNUM(D)
Denne er fullstendig avhengig av hvordan det lokale systemet har satt opp datoinnstillingene og kan derfor gi ulikt svar på forskjellige maskiner.

(Innlegget ble redigert 08.10.12 17:00)

RattusNorvegicus
RattusNorvegicusInnlegg: 12421
08.10.12 17:03

I noen land starter uken på søndag. Dette var vanlig i Norge før Stortinget bestemte at det ikke var slik lenger. Da blir formelen annerledes. Siden du ikke har spesifisert at du vil ha formel for et annet land har jeg ikke laget den for det, men samme formel fungerer for søndag = 0, da skifter ukenummeret på søndag i stedet for mandag. Hvis du insisterer på søndag = 1 øker du fastleddet i formelen fra 10 til 11.

Glee
GleeInnlegg: 5226
08.10.12 23:06
Grammofon: Jeg trenger en formel som beregner riktig ukenummer (1-52) for en vilkårlig dag i et vilkårlig år.

Excel har en fin og enkel formel for dette, som ikke gir korrekt svar.

Jeg bruker denne formelen:

=TEXT((1+INT((INT([DATO])-DATE(YEAR(INT([DATO])+4-WEEKDAY(INT([DATO])+6));1;5)+WEEKDAY(DATE(YEAR(INT([DATO])+4-WEEKDAY(INT([DATO])+6));1;3)))/7));"W 00")

i SharePoint. Skal du bruke den i Excel så bytter du ut [DATO] med f.eks. A1

Denne formelen legger til W foran ukesnummeret, f.eks. W 45 

Grammofon
GrammofonInnlegg: 2229
09.10.12 00:36
RattusNorvegicus: Heltallsdivider (dropp alt etter heltall) (Dagnummer+10-Ukedag)/7I engelsk Excel gjøres dette som følger: Trunc((D+10-U)/7)

Enkelt, men genialt. Årstallet er faktisk uten betydning. Ved lave eller høye dagnummer kan ukenummeret bli lik 0 eller 53, men da er det jo bare å hhv. legge til eller trekke fra 52. Tusen takk for hjelpa.

 

RattusNorvegicus
RattusNorvegicusInnlegg: 12421
09.10.12 11:34
Grammofon: Enkelt, men genialt. Årstallet er faktisk uten betydning. Ved lave eller høye dagnummer kan ukenummeret bli lik 0 eller 53, men da er det jo bare å hhv. legge til eller trekke fra 52. Tusen takk for hjelpa.

Aha, nå skjønner jeg hvor årstallet kommer inn i bildet.

Klikk for å gå tilbake til toppen

Siste innlegg