Avatar billede h_s Forsker
22. februar 2013 - 12:33 Der er 16 kommentarer og
1 løsning

Uge 52 ctr. uge 1 Uge.nr()

Jeg bruger uge.nr() til at beregne ugenummer i forhold til en dato.
Mit problem er som altid omkring årsskiftet.
Mandag den 30/12-2013 starter uge 1. Men funktionen viser uge 53.
Mandag den 6/1-2014 starter uge 2. Det viser funktionen også.

Bruger jeg funktionen til at beregne ugenummer for onsdag den 1/1-14 er det uge 1.

Hvordan får jeg uge.nr() til at benytte de rigtige regler; nemlig at hvis der er 4 dage i en uge der falder i januar er hele ugen uge 1 (torsdag-søndag). Er der 4 dage i december (Mandag-torsdag) er det uge 53.
Avatar billede platik Nybegynder
22. februar 2013 - 12:45 #1
Tja:

I følge dette link http://office.microsoft.com/da-dk/excel-help/uge-nr-funktionen-uge-nr-HP010343016.aspx
løses det ved uge.nr(Dato(2013;30;12);21)

Men overstående link modsiger lidt din forklaring. Så ikke så sikker på det virker.
Avatar billede kabbak Professor
22. februar 2013 - 13:45 #2
brug egen function

Public Function Uge(Dato As Date) As Integer
Uge = DatePart("w", Dato, vbMonday, vbFirstFourDays)
End Function
Avatar billede kabbak Professor
22. februar 2013 - 13:48 #3
der manglede lige et w
Public Function Uge(Dato As Date) As Integer
Uge = DatePart("ww", Dato, vbMonday, vbFirstFourDays)
End Function
Avatar billede h_s Forsker
22. februar 2013 - 13:52 #4
Det forslag "uge.nr(Dato(2013;30;12);21)" virker ikke :-) Der må være en fejl i det sidste med "21"!

Jeg kan se i artiklen at der er 2 systemer man bruger:

Der bruges to systemer til denne funktion:

System 1    Den uge, der indeholder 1. januar, er den første uge i året, og den nummereres som uge 1.
System 2    Den uge, der indeholder den første torsdag i året, er den første uge i året, og den nummereres som uge 1. Dette system er den metodologi, som er angivet i ISO 8601, der er bedre kendt som det europæiske ugenummereringssystem.

Det er system nr. 2 jeg bruge tror jeg. Men hvordan får jeg funktionen til at tage det system?
Avatar billede h_s Forsker
22. februar 2013 - 13:52 #5
Kabbak: Jeg skal bruge en funktion. VBA duer ikke i dette tilfælde :-)
Avatar billede kabbak Professor
22. februar 2013 - 13:58 #6
Det er jo en function, godt nok brugerdefineret

den kaldes i cellen med =uge(A1)
Avatar billede natkatten Mester
22. februar 2013 - 14:06 #7
=HVIS($A1="";"";HELTAL(($A1-DATO(ÅR($A1-UGEDAG($A1-1)+4);1;3)+UGEDAG(DATO(ÅR($A1-UGEDAG($A1-1)+4);1;3))+5)/7))
Avatar billede somalpe Nybegynder
22. februar 2013 - 14:10 #8
Der er ikke noget galt med det sidste "21" som du skriver

Nu har jeg kun en Engelsk version af Excel, men er der ikke noget med at man bruger Komma i den Danske version i stedet for semikolon?? Dvs at den skal se ud som følger:

=uge.nr(Dato(2013,30,12),21)

Prøv det...
Avatar billede h_s Forsker
22. februar 2013 - 14:14 #9
Kabbak> "uge()" virker vist ikke. Den hedder uge.nr() :-)
det er den funktion der er problemet. Den viser uge 53 den 30/12-13, hvor den burde vise uge 1.

Natkatten> din funktion viser 1.januar 1900 ved 30/12-13!
Avatar billede natkatten Mester
22. februar 2013 - 14:16 #10
Du skal formatere kolonnen med ugenr. som tal og ikke som dato!
Avatar billede kabbak Professor
22. februar 2013 - 14:17 #11
#9
h-s

min er en brugerdefineret, se koden #3
Avatar billede natkatten Mester
22. februar 2013 - 14:29 #12
Kig på denne fil, hvor jeg også har sat Kabbaks UDF ind. Du skal derfor aktivere makroer for at den kan anvendes:

http://gupl.dk/692337/
Avatar billede Slettet bruger
22. februar 2013 - 15:26 #13
=WEEKNUM(DATE(2013;12;30);21)
viser 1.
Avatar billede Slettet bruger
22. februar 2013 - 15:27 #14
Vedrørende #13
Forudsat du bruger Excel 2010.
Avatar billede svla Mester
22. februar 2013 - 21:58 #15
Jeg har tidligere haft problemer med beregning af ugenummer henover årskiftet, men så fandt jeg et link som jeg vil henvise til, jeg synes at mine excelark fungerer fint og tilfredsstillende efter jeg begyndte og bruge det som er på linket her:
http://www.rondebruin.nl/isodate.htm
Avatar billede h_s Forsker
26. februar 2013 - 09:21 #16
Så fandt jeg en løsning:

Jeg har brugt Natkattens løsning i #9:

=HVIS($A18="";"";HELTAL(($A18-DATO(ÅR($A18-UGEDAG($A18-1)+4);1;3)+UGEDAG(DATO(ÅR($A18-UGEDAG($A18-1)+4);1;3))+5)/7))

Vil du smide et svar og måske forklare formlen!

Tak for hjælpen til alle!
Avatar billede h_s Forsker
24. marts 2013 - 17:08 #17
Da der nu er gået næsten 1 måned uden svar, trækker jeg point retur for at lukke svaret.

Natkatten> Hvis du læser dette, så skriv, så finder vi en løsning for at du kan få dine point!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester