Avatar billede sp135 Nybegynder
11. oktober 2000 - 15:37 Der er 16 kommentarer og
5 løsninger

Excel Dato til uge...

Jeg har et problem i Excel, når jeg eks. skriver d. 26-10-00 og bruger den formel til at finde den tilhørende uge så får jeg at vide at datoen ligger i uge 44 (i virkeligheden i uge 43), og hvis jeg skriver d. 29-10-00 får jeg uge 45 (i virkeligheden uge 43)
Jeg håber at i kan hjælpe mig med mit problem.

Sp135
Avatar billede lasseo Nybegynder
11. oktober 2000 - 15:48 #1
Jeg tror det skyldes diskussionen om, hvorvidt en uge starter mandag eller søndag.
Jeg ved ikke hvilken formel du anvender til oversættelsen, men er det weeknum skal du have et 2-tal til sidst:

WEEKNUM(\"1/9/94\", 2)
Avatar billede wanky Nybegynder
11. oktober 2000 - 16:00 #2
Forskellen i ugenumre skyldes sandsynligvis at USA og Europa har forskellige måder at udregne 1. ugenummer på. Ovennævnte svar er ikke altid korrekt!
Hvis du vil anvende europæisk ugenummerering - ISO standard 8601 (!) skal du anvende en pokkers lang formel...
Se den hos www.geocities.com/davemcritchie/excel/datetime.htm
Avatar billede smoothj Nybegynder
11. oktober 2000 - 16:49 #3
I dansk Excel hedder formlen UGE.NR (husk at installere den under tilføjelsesprogrammer), og jeg har glæde af den ved at skrive flg.

=UGE.NR(A1;2)-1

hvor \"2\" er typen, der regner med uger fra mandag til søndag og \"-1\" bare skal til for at det passer.

:o]
Avatar billede frankgrevil Praktikant
11. oktober 2000 - 17:11 #4
ISO-standarden er ellers ikke så indviklet:
· Ugen starter på en mandag.
· Uge 1 indholder årets første torsdag (og dermed mindst fire dage af den uge, der måtte ligge hen over årsskiftet).
Avatar billede frankgrevil Praktikant
11. oktober 2000 - 17:40 #5
smoothj\'s forslag om blot at trække 1 fra gav mig bange anelser, så jeg afprøvede lige, om Excel kan finde ud af ISO-standarden. Nedenfor har jeg genereret årets første torsdag i 54 fortløbende år. Den skal definitionsmæssigt falde i uge 1:

dato    =UGE.NR(dato;2)
1970.01.01    1
1971.01.07    2
1972.01.06    2
1973.01.04    1
1974.01.03    1
1975.01.02    1
1976.01.01    1
1977.01.06    2
1978.01.05    2
1979.01.04    1
1980.01.03    1
1981.01.01    1
1982.01.07    2
1983.01.06    2
1984.01.05    2
1985.01.03    1
1986.01.02    1
1987.01.01    1
1988.01.07    2
1989.01.05    2
1990.01.04    1
1991.01.03    1
1992.01.02    1
1993.01.07    2
1994.01.06    2
1995.01.05    2
1996.01.04    1
1997.01.02    1
1998.01.01    1
1999.01.07    2
2000.01.06    2
2001.01.04    1
2002.01.03    1
2003.01.02    1
2004.01.01    1
2005.01.06    2
2006.01.05    2
2007.01.04    1
2008.01.03    1
2009.01.01    1
2010.01.07    2
2011.01.06    2
2012.01.05    2
2013.01.03    1
2014.01.02    1
2015.01.01    1
2016.01.07    2
2017.01.05    2
2018.01.04    1
2019.01.03    1
2020.01.02    1
2021.01.07    2
2022.01.06    2
2023.01.05    2

Jeg kan naturligvis have begået en fejl og vil så gerne høre hvor, men jeg er alvorligt bange for, at Excel IKKE er tilpasset ISO-standarden.

Herefter må turen være kommet til makro-freaksene ...
Avatar billede frankgrevil Praktikant
11. oktober 2000 - 17:57 #6
Lidt nærmere efterforskning viser, at Excel simpelthen definerer uge 1 som den uge, der indeholder den 1. januar. Det giver afvigelse mellem ugenumrene i de år, der starter på en fredag, lørdag eller søndag. I disse år skal der trækkes 1 fra =UGE.NR(dato;2), ellers ikke.
Avatar billede frankgrevil Praktikant
11. oktober 2000 - 18:08 #7
Stadig uden makroer:

Hvis datoen står i celle A1 vil følgende give ISO-ugenummeret:

=UGE.NR(A1;2)-(UGEDAG(DATO(ÅR(A1);1;1);2)>=5)

eller

=UGE.NR(A1;2)-HVIS(UGEDAG(DATO(ÅR(A1);1;1);2)>=5;1;0)

Det er grimt, men virker!
Avatar billede wanky Nybegynder
12. oktober 2000 - 08:25 #8
Det er en spændende diskussion!
Her er den (internationale) formel der virker!

=\"Uge \"  & INT((d-SUM(MOD(DATE(YEAR(d-MOD(d-2,7)+3),1,2),{1E+99,7})*{1,-1})+5)/7)

I fomlen skal d erstattes med den dato for hvilken ugenummeret skal beregnes.
mvh
;-) Wanky
Avatar billede gonzoo Nybegynder
20. oktober 2000 - 10:36 #9
jeg har fundet et eksembel til at beregne ugenummer det Vb kode Public Function uge_Nr(WorkDate$) As Integer
\'formatet for Workdate$ er dd/mm/åååå  f.eks 10/03/1998
    uge_Nr = DatePart(\"ww\", WorkDate$, vbMonday, vbFirstFourDays)
End Function

Private Sub CmdUge_Click()
  \' Eksempel hvor Uge_nr kaldes fra en Commandknap, Cmd_uge
  MsgBox \"Ugenummer for befrielsen \" & uge_Nr(\"05/05/1945\")
End Sub

håber det kan bruges
Avatar billede pehrsson Nybegynder
05. december 2006 - 14:30 #10
Prøvede flere af løsningerne skitseret ovenfor, men bl.a. frankgrevils virker ikke i 2008. Her kommer sidste uge til at hedde 53 man-ons og 1 torsdag-søndag.

nedenstående virker, men er ikke alt for køn og kan sikkert optimeres.

=RUND.NED((A1 - ((DATO(ÅR(A1 + 4 - UGEDAG(A1;2));1;1)) - (UGEDAG(DATO(ÅR(A1 + 4 - UGEDAG(A1;2)); 1; 1); 2)) + (HVIS(UGEDAG(DATO(ÅR(A1 + 4 - UGEDAG(A1;2)); 1; 1); 2) > 4; 8; 1))))/7;0)+ 1
Avatar billede pehrsson Nybegynder
05. december 2006 - 14:41 #11
Lidt mere elegant,

=1+RUND.NED((A1-DATO(ÅR(A1+4-UGEDAG(A1+6));1;5)+UGEDAG(DATO(ÅR(A1+4-UGEDAG(A1+6));1;3)))/7;0)
Avatar billede bak Seniormester
05. december 2006 - 17:24 #12
eller
=AFKORT((A1-DATO(ÅR(A1+3-REST(A1-2;7));1;REST(A1-2;7)-9))/7)
Avatar billede koonz Nybegynder
19. december 2006 - 13:33 #13
Hej bak
Kan du oversætte den formel til engelsk excel ?
Avatar billede bak Seniormester
19. december 2006 - 13:50 #14
=TRUNC((A1-DATE(YEAR(A1+3-MOD(A1-2;7));1;MOD(A1-2;7)-9))/7)
Avatar billede koonz Nybegynder
19. december 2006 - 13:57 #15
Takker og bukker :)
Avatar billede pehrsson Nybegynder
19. december 2006 - 19:18 #16
Smukt
Avatar billede strojsen Nybegynder
08. september 2011 - 23:39 #17
Er der ikke nogen der kan give mig ovenstående oversættelse, så jeg med en given dato i format DD-MM-ÅÅ eller DD-MM-ÅÅÅÅ kan få den til at spytte mig ugenummer ud.

Jeg kan ikke finde en formel i ovenstående, der løser mig problem!
Avatar billede OleMo Juniormester
25. august 2014 - 15:33 #18
B1 = datoen, fx 01-01-2014

=AFKORT((B1-DATO(ÅR(B1+3-REST(B1-2;7));1;REST(B1-2;7)-9))/7)
Avatar billede LOW Praktikant
08. marts 2017 - 14:24 #19
Jeg har fået formlen til at virke, men jeg mangler stadig 2 ting.
1. Jeg vil gerne have at uge dag vises, fx onsdag i uge 5= 5,3
2. Jeg vil gerne kunne trække de 2 ugenumre fra hinanden
Avatar billede OleMo Juniormester
08. marts 2017 - 17:38 #20
Du skal allerførst formatere cellerne i kolonne
1) A til: Brugerdefineret og ddd
2) B til: Dato (14-03-2001)
3) C+D+E til: Tal med 1 decimal

I celle A1 skriver du: =B1
I celle C1 skriver du: =AFKORT((B1-DATO(ÅR(B1+3-REST(B1-2;7));1;REST(B1-2;7)-9))/7)
I celle D1 skriver du: =UGEDAG(A1)-1
I celle E1 skriver du: =C1+(D1/10)

I celle B1 kan du så skrive forskellige datoer.

Jeg forstår ikke dit punkt 2. Jeg vil gerne kunne trække de 2 ugenumre fra hinanden. Prøv at forklare det lidt bedre.
Avatar billede jka Juniormester
07. august 2017 - 12:51 #21
Har også tidligere brugte denne formel

=AFKORT((A1-DATO(ÅR(A1+3-REST(A1-2;7));1;REST(A1-2;7)-9))/7)

A1 = dato

Men lige opdaget denne her i Office 365

=ISOUGE.NR(A1) - som ser ud til og virke
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