Avatar billede maffigadaffi Novice
12. marts 2014 - 10:42 Der er 5 kommentarer og
1 løsning

Function: Find dato for mandag i en given uge?

Jeg leder efter en Function, der kan give mig dato for mandag i en uge, ud fra en tekst i en celle der ser ud som følger "2014 UGE 10".

Jeg har en formel der virker:

hvor Celle A1 indeholder teksten "YYYY UGE WW":

=DATO(VENSTRE(A1;4);1;7*HØJRE(A1;2)-3-UGEDAG(DATO(VENSTRE(A1;4);;);3))

Bak fra detet fremragende forum har tidligere kredset om præcist denne problemstilling her:
http://www.eksperten.dk/spm/229114 (Se lidt nede i tråden)

Men jeg har ikke evnerne til at ændre funktionen så det passer til mit behov.

Kan nogen (Bak, måske?) hjælpe?
Avatar billede ole_viller Mester
12. marts 2014 - 13:40 #1
Hej Maffigadaffi.
Jeg laver en "reference"-celle for hvert år, jeg skal bruge. I cellen står datoen for mandag i uge 1 i et pågældende år.
Jeg har lavet reference-celler for tre år i cellerne A2, A3 og A4
I celle A2 skriver jeg 30-12-2013 - denne celle kalder jeg "mandag_uge_1_2014" (det taster du bare ind, hvor der ellers står A2 øverst til venstre)
I celle A3 skriver jeg 29-12-2014 - denne celler kalder jeg "mandag_uge_1_2015"
I celle A4 skriver jeg 04-01-2016 - denne celle kalder jeg "mandag_uge_1_2016"
Cellerne A2, A3 og A4 formatteres som dato (dd-mm-åååå)

I celle A1 står det tal, som er udgangspunktet for beregningen - YYYY uge WW

I celle B1 har jeg placeret beregningen (datoen for mandagen i uge WW i år YYYY udfra celle A1)
Celle B1 skal ligeledes formatteres som dato.

Formlen til celle B1 er:
=HVIS(VENSTRE(A1;4)="2014";(HØJRE(A1;2)*7-7)+mandag_uge_1_2014;
HVIS(VENSTRE(A1;4)="2015";(HØJRE(A1;2)*7-7)+mandag_uge_1_2015;
HVIS(VENSTRE(A1;4)="2016";(HØJRE(A1;2)*7-7)+mandag_uge_1_2016
)))

OBS
Hvis du skal bruge flere år, må du selvfølgelig lave flere reference celler - og flere linier efter samme princip i beregnings-formlen.

Venlig hilsen
Ole Viller, Randers
Avatar billede maffigadaffi Novice
13. marts 2014 - 06:48 #2
Hej Ole.

Tusind tak for indsatsen, men det er ikke helt hvad jeg er ude efter.

Jeg ønsker at finde mandag i en uge ved hjælp af en UserFunction, udelukkende ud fra en tekst i en celle hvor der altid står årstal som de første 4 karakterer og ugenr. som de 2 sidste. (Altså uden referenceceller).

Desuden er det en UserFunction jeg er ude efter, således at jeg ikke skal skrive hele min (lange)formel hver gang. I stedet vil jeg gerne kunne nøjes med blot kan skrive :"=FoersteUgedag(A1)" eks i celle B1 og så få returneret "41708" som jeg kan formattere som dato efterfølgende såfremt min tekststreng befinder sig i celle A1 og har indholdet "2014 UGE 11", Og at min UserFunction naturligvis hedder noget i retning af:

"Public Function FoersteUgedag(YearAndWeek as String), eller noget i den retning".
Avatar billede xl-Enthusiast Ekspert
13. marts 2014 - 14:56 #3
Function FDIW(YearandWeek As String)
FDIW = Evaluate("DATE(" & Left(YearandWeek, 4) & ",1,7*" & _
Right(YearandWeek, 2) & "-3-WEEKDAY(DATE(" & Left(YearandWeek, 4) & ",,),3))")
End Function
Avatar billede maffigadaffi Novice
17. marts 2014 - 08:55 #4
Lige i øjet, xl-Enthusiast...
Verdensklasse...
Avatar billede maffigadaffi Novice
17. marts 2014 - 08:55 #5
@ xl-Enthusiast:

Smid et svar og få velfortjente point...
Avatar billede xl-Enthusiast Ekspert
17. marts 2014 - 09:41 #6
OK.
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
Kategori
Vi har et stort udvalg af Excel kurser. Find lige det kursus der passer dig lige her.

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