Avatar billede HHA Professor
12. juni 2024 - 09:55 Der er 20 kommentarer og
1 løsning

Udregne jubilæer

Hejsa,

Jeg forsøger at lave en formel der kan udregne hvornår folk har jubilæum næste gang.
Har fundet en der til dels gør det, men jeg har bare nogle andre år, hvor vi fejrer jubilæer.
=DATO(ÅR(D4)+VÆLG(AFRUND.LOFT((ÅR(NU())-ÅR(D4))/10;1);10;10;20;30;40;50;60);MÅNED(D4);DAG(D4))

Men jeg har disse år som jubilæer 25, 35, 40, 45, 50, 55, 60 år
Har prøvet at ændre i formlen, men det rækker mine evner ikke til 🙃
Nogen som kan hjælpe her?
Avatar billede MaxZpaD Professor
12. juni 2024 - 10:09 #1
Jeg ville bruge EDATO-funktionen, f.eks. =EDATO("01-06-2010";25*12) hvis det er 25-års jubilæum efter ansættelse den 1. juni 2010.
Avatar billede HHA Professor
12. juni 2024 - 11:26 #2
#1,
Den vil så kræve at jeg koder hver eneste ansættelses dato ind og flere gange for at få 25, 35, 40, 45, osv. eller har jeg tolket det forkert?
Jeg har omkring 80 kollegaer, så det ville være lidt af en opgave.
Tak for dit indspark 👍

Ansættelse:    Næste jubilæum:    Antal år næste gang:
01-07-1989    01-07-2029            40

I kolonnen Næste jubilæum har jeg denne kode:
=DATO(ÅR(D4)+VÆLG(AFRUND.LOFT((ÅR(NU())-ÅR(D4))/10;1);10;25;30;35;40;45;50;55;60);MÅNED(D4);DAG(D4))
Den burde have returneret 01-07-2024 og ikke 2029.

Hvis jeg vil teste et 45 års jubilæum, så har jeg indtastet 01-07-1979 i D4 så returnerer den datoen 01-07-2019 og ikke 01-07-2024.
Den formel kan ikke finde ud af det, den lever et mærkeligt liv. Jeg ved ikke hvad den regner efter.
Prøver jeg flere andre årstal, bliver den beregnede dato enten større eller mindre..


Nogen der kan se hvad der er galt med koden eller har en kode der kan regne det ud?
Avatar billede MaxZpaD Professor
12. juni 2024 - 11:47 #3
Du skal hente ansættelsesdatoen ind fra den celle, den står i, og tilsvarende for antal år, f.eks. så =EDATO(A1;C1*12) bliver til =EDATO("01-07-1989";40*12) i dit eksempel.
Avatar billede jens48 Ekspert
12. juni 2024 - 12:54 #4
Jeg har på et tidspunkt ønsket at få den samme besked og brugte nedenstående formel

=IF(AND(MOD(DATEDIF(A1;TODAY();"Y");5)=4;MOD(DATEDIF(A1;TODAY();"M");12)=11);"Upcoming jubilee";"")
Den giver besked en måned før et jubilæum der er deleligt med 5. Kan let ændres til kun at reagere på 25 års jubilæer. Så vil den se sådan ud:
=IF(AND(MOD(DATEDIF(A1;TODAY();"Y");25)=24;MOD(DATEDIF(A1;TODAY();"M");12)=11);"Upcoming jubilee";"")

Den danske version af den sidste formel er:
=HVIS(OG(REST(DATO.FORSKEL(A1;IDAG();"Y");25)=24;REST(DATO.FORSKEL(A1;IDAG();"M");12)=11);"Upcoming jubilee";"")
Avatar billede HHA Professor
12. juni 2024 - 13:37 #5
Hej Jens,

Den er da også fin 👍
Desværre skal man selv finde frem til hvilket jubilæum der kommer.
Den formel, som jeg fandt, som desværre ikke virker helt, er fin, for så kan man trække de 2 datoer fra hinanden og få årene vist.

Nogen der kan se hvorfor den formel giver forskellige datoer, som ikke passer?
Den ville så være endnu bedre, hvis den havde 25, 35, 40, 45, 50, 55, 60 år 😁
=DATO(ÅR($A1)+VÆLG(AFRUND.LOFT((ÅR(NU())-ÅR(A1))/10;1);10;20;30;40;50;60);MÅNED($A1);DAG($A1))
Avatar billede jernrosen3 Forsker
12. juni 2024 - 15:08 #6
Jeg har leget lidt med din formel og syntes at .LOFT ikke gav mening*S*
Så mit bud er - i B1:

=DATO(ÅR($A1)+VÆLG(AFRUND((ÅR(NU())-ÅR(A1))/10;1);25;35;40;50;55;60);MÅNED($A1);DAG($A1))

og - C1 :

=(B1-A1)+2  ( Formateret som åå )

Datoen 12-04-1974 i A1 giver 55 års jubilæum den 12-04-2029
Avatar billede jens48 Ekspert
12. juni 2024 - 15:12 #7
Jeg eksperimenterede lidt videre med din formel:

=ROUNDUP(ROUND(YEAR(TODAY())-YEAR(A1);5)/5;)*5&" års jubilæum d. "&TEXT(DATE(YEAR($A1)+CHOOSE(CEILING((YEAR(NOW())-YEAR(A1))/10;1);5;10;15;20;25;30;35;40;45;50;55;60);MONTH($A1);DAY($A1));"d-mmm-yyyy")
Dansk:
=RUND.OP(AFRUND(ÅR(IDAG())-ÅR(A1);5)/5;)*5&" års jubilæum d. "&TEKST(DATO(ÅR($A1)+VÆLG(AFRUND.LOFT((ÅR(NU())-ÅR(A1))/10;1);5;10;15;20;25;30;35;40;45;50;55;60);MÅNED($A1);DAG($A1));"d-mmm-åååå")

Så får du besked om alle jubilæer deleligt med 5
Avatar billede jens48 Ekspert
12. juni 2024 - 15:15 #8
Glem den sidste kommentar. Det virker alligevel ikke
Avatar billede jens48 Ekspert
12. juni 2024 - 15:17 #9
Dvs. det var blot
VÆLG(AFRUND.LOFT((ÅR(NU())-ÅR(A1))/10;1)
der skulle ændres til
VÆLG(AFRUND.LOFT((ÅR(NU())-ÅR(A1))/5;1)
Avatar billede HHA Professor
12. juni 2024 - 15:39 #10
#6, jernrosen3

Den virker vist ikke helt.
Hvis jeg bruger fx 1-7-1989, så returnerer den 1-7-2029
Det var også det den drillede mig med.

Men mange tak for forsøget 👍
Avatar billede HHA Professor
12. juni 2024 - 15:44 #11
#7, jens48

Den virker tilsyneladende fejlfrit 👍

Hvis jeg så vil formatere cellen med formlen i, så den bliver gul en måned før og skifter til grøn en uge før og ned til den dato er overskredet.
Hvordan gør jeg så det, når der er både tekst og en dato i cellen?
Kan det lade sig gøre?

Rigtigt fint arbejde, mange tak 👍
Avatar billede bjarnehansen Mester
12. juni 2024 - 17:34 #12
Avatar billede HHA Professor
13. juni 2024 - 17:08 #13
#12, bjarnehansen,

Takker, den vil jeg lige kigge på, om det er en der kan bruges til det jeg søger 👍
Avatar billede HHA Professor
14. juni 2024 - 12:11 #14
Lige et tillægsspørgsmål.

Hvis jeg vil lave en betinget formatering i en celle, hvor den skal tage datoen ud af den tekstlinje som jens48 har lavet.
Der får jeg fx dette resultat i en celle:
25 års jubilæum d. 01-07-2024

Hvis jeg vil trække dette over i en anden celle, som skal skifte farve, og bruger denne formel i betinget formatering, så virker den ikke med denne formel: =HØJRE(E17;10)+30<IDAG()
Men brugerjeg formlen i en anden celle, så kan den fint trække datoen ud og den kan bruges.
Kan man ikke bruge sådanne formler i betinget formatering?
Avatar billede jens48 Ekspert
14. juni 2024 - 12:33 #15
Måske ligger problemet i at dato sommetider er to cifre og andre gange kun et. Ret tekstformateringen fra "d-mmm-åååå" til "dd-mmm-åååå", og husk så at rette din formel til
=HØJRE(E17;11)+30<IDAG()
Avatar billede bjarnehansen Mester
14. juni 2024 - 18:57 #17
Avatar billede HHA Professor
18. juni 2024 - 19:37 #18
Hejsa,

Det virker helt perfekt, grundet jeres input.
Tusind tak 👍🙌
Avatar billede HHA Professor
25. juni 2024 - 07:48 #19
Hejsa,

Prøver lige her igen 🫣
I kolonne E og H, her fejler den lidt med fødselsdage/jubilæer, som I kan se så kniber det med at den hopper videre til næste halv-/helrunde fødselsdag eller jubilæum, når en given dato er overskredet (hvis jeg fx skriver datoen i kolonne C eller G tilbage til en der er overskredet, men inden for samme årstal.
Det går så også ud over formateringen af cellerne, hvilket jeg ikke lige fostår.
Hvad er det der laver denne fejl?

Har uploadet filen her:
http://46.32.50.245:8080/share.cgi?ssid=d9e26ad1ffae4a6090bd9266bbd9e130&fid=d9e26ad1ffae4a6090bd9266bbd9e130
Koden er 6655
Avatar billede bak Seniormester
28. juni 2024 - 21:18 #20
prøv denne
=LET(Date1; [@[Fødselsdato:]]; txt; " års fødselsdag d. "; age; LOFT.MAT(DATO.FORSKEL(Date1; IDAG(); "Y") + 1; 5); BigDate; DATO(ÅR(Date1) + age; MÅNED(Date1); DAG(Date1)); HVIS(ER.TOM(Date1); ""; age & txt & TEKST(BigDate; "dd-mm-åååå")))

ved jubilæum vælg ansettelsedato istedet for  [@[Fødselsdato:]];
Avatar billede bjarnehansen Mester
29. juni 2024 - 20:30 #21
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