21. november 2011 - 11:52Der er
10 kommentarer og 1 løsning
uge nr til dato
Hej
Er der nogen der kan hjælpe med en formel, hvor man skriver uge nr i et felt og formlen så i et andet felt fortæller hvilken dato ugen starter med.....mandag som første dag i uge ?
Vi har haft problemet oppe og vende tidligere i gruppen. Jeg har indsat en del af mit svar fra dengang:
....................
.............Det skyldes,at UGE.NR() altid har 1. januar placeret i uge 1.
Det er selvfølgelig et system at køre, og man kan ikke sige, at det er forkert. Det harmonerer bare ikke med ISO /R 2015 - 1971, Ugenummerering der siger at:
"Uge nr 1 i et år er den første uge, som indeholder mindst 4 dage af det nye år."
Da vi i Danmark har indrettet alle? vores kalendere efter ISO /R 2015, betyder det, at UGE.NR i nogle år vil vise det forkerte tal (ups!). Det er måske forklaringen på, at Microsoft ikke har villet implementere funktionen som standardfunktion.
............................
Jeg har lavet en lille brugerdefineret funktion, som kan bruges i stedet for UGE.NR Funktionen sættes ind i et modul i hver projektmappe, man skal bruge den i (med mindre man har en .xla, man kan gemme den i).
Function ugenr(Dato) ugenr = DatePart("ww", Dato, 2, 2) End Function
DatePart-funktionen er ikke en decideret VBA-funktion. Det er en VB funktion og kan som sådan bruges af VBA.
DatePart kan tage hensyn til forskellige standarder, så det er uforståeligt, at Microsoft ikke har implementeret denne som regnearksfunktion
Når den skal bruges fra regnearket gøres det således:
=ugenr("1-1-99")
dette vil give det korrekte resultat 53, mens UGE.NR vil give 1
Med venlig hilsen
LH
ODJ skrev i meddelelsen <>... >Med tilføjelsesprogrammet Analysis ToolPak, som findes under Funktioner, >Tilføjelsesprogrammer, >er det muligt at beregne uge-nummer for en dato således: >A1: =UGE.NR(C1) eller =UGE.NR(C;1), hvis 1. ugedag = søndag >B1: =UGE.NR(C1;2), hvis 1. ugedag = mandag. >C1: dato >Ved overgangen mellem 1998 - 1999 giver Excel 97 dette resultat: >A B C >52 52 lø-26-dec-98 >53 52 sø-27-dec-98 >53 53 ma-28-dec-98 >53 53 ti-29-dec-98 >53 53 on-30-dec-98 >53 53 to-31-dec-98 >1 1 fr-01-jan-99 >1 1 lø-02-jan-99 >2 1 sø-03-jan-99 >2 2 ma-04-jan-99 >3 2 sø-10-jan-99 >3 3 ma-11-jan-99 >osv. >Ifølge Excel 97 varer uge 53 4-5 dage, uge 1 2-3 dage og uge 2 starter >søndag d. 3.1.99 eller mandag d. 4.1 >Samme fejl gør sig iøvrigt gældende ved årsskiftet 1999-2000. > >Ifølge danske kalendere, starter uge 1 i 1999 mandag d. 4. januar. >(Med lidt god vilje evt. søndag d. 3. januar) > >Er der tale om en regulær fejl fra Microsoft? >Skyldes det, at man i USA altid slutter uge 53 d. 31.12 og starter uge 1 d. >1. januar? >Kan man et eller andet sted fortælle Excel 97, hvorledes man ønsker denne >funktions indstillinger? >Kan man evt. få fat i en rettelse, der har løst dette problem? > >Microsoft Outlook 97' danske udgave kan godt håndtere problemet, idet man >under Funktioner, Indstillinger, Kalender kan vælge: >Første ugedag: Alle 7 dage kan vælges >Første uge i året: Første firedagsuge > eller: Starter den 1. januar > eller: Første hele uge > >-- > >
Synes godt om
Slettet bruger
21. november 2011 - 14:33#9
Pindehuggeri måske men (blandt andet):
Function ugenr(Dato) ugenr = DatePart("ww", Dato, 2, 2) End Function
er heller ikke skudsikker. Prøv med den 31-12-2007.
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.