Avatar billede Dorthe Novice
26. januar 2023 - 16:18 Der er 7 kommentarer

Alder ud fra Cpr. nr. uanset format/foranstillet 0

Kære excel-excellencer!

Jeg søger én formel som kan beregne alder ud fra cpr. uanset om cpr. nr. er formateret som tal eller tekst. Dvs. formlen skal være uanset om der er foranstillet 0 eller ej: Dvs. uanset om personer født mellem den 1. og 9. i måneden vises med 9 eller 10 chifre i deres cpr. nr.

Det kunne være super fedt, hvis det lykkes.

Tak for jeres indsats!
Bh. D.
Avatar billede bak Seniormester
26. januar 2023 - 18:17 #1
denne formel giver alder

=DATEDIF( IF(LEN(A1)=9; DATE( MID(A1;4;2); MID(A1;2;2); LEFT(A1;1)); DATE( MID(A1;5;2); MID(A1;3;2); LEFT(A1;2))); TODAY();  "Y")
Avatar billede Dorthe Novice
26. januar 2023 - 18:51 #2
Hej Bak. Jeg har først mulighed for at afprøve i morgen. Min Excel er på dansk, men det finder jeg nok ud af! Vil dit bud virke uanset om cpr er formateret som tal eller tekst ? Og uanset om cpr nr skrives eksempelvis 0102035555 eller 102035555 (hvis fødselsdag 1. februar forsvinder foranstillet 0 når talformat benyttes). Bh. D.
Avatar billede bak Seniormester
26. januar 2023 - 19:13 #3
Ja, det vil fungere.
Nu har jeg desværre ikke en dansk version, men her er mit bedste gæt
=DATO.FORSKEL( HVIS(LÆNGDE(A1)=9; DATO( MIDT(A1;4;2); MIDT(A1;2;2); VENSTRE(A1;1)); DATO( MIDT(A1;5;2); MIDT(A1;3;2); VENSTRE(A1;2))); IDAG();  "Å")
Avatar billede bak Seniormester
26. januar 2023 - 21:51 #4
Jeg har ændret den så den også kan tage yngre personer med.
=LET(CPR;TEKST(F1;"0#########");Forskel; HVIS(MIDT(CPR;5;2)>MIDT(ÅR(IDAG());1;2);0;100);DATEDIF(DATO(MIDT(CPR;5;2);MIDT(CPR;3;2);VENSTRE(CPR;2));IDAG();"Y") - Forskel)
Avatar billede Dorthe Novice
27. januar 2023 - 10:00 #5
Jeg får sådan en fejl: #NAVN? Desværre.

Selvom jeg bruger F1 som cellereference til cpr. nr i forslag #4 og jeg fjerner mellemrum fra formlen. Måske har det noget at gøre med sprogversionen:  I #3 har du brugt "Å" og i #4 har du brugt "Y". Desværre kan jeg ikke ændre min til engelsk. Jeg har forsøgt begge nedenstående versioner, som giver det samme resultat: NAVN? 

=LET(CPR;TEKST(F1;"0#########");Forskel; HVIS(MIDT(CPR;5;2)>MIDT(ÅR(IDAG());1;2);0;100);DATEDIF(DATO(MIDT(CPR;5;2);MIDT(CPR;3;2);VENSTRE(CPR;2));IDAG();"Y")-Forskel)

=LET(CPR;TEKST(F1;"0#########");Forskel; HVIS(MIDT(CPR;5;2)>MIDT(ÅR(IDAG());1;2);0;100);DATEDIF(DATO(MIDT(CPR;5;2);MIDT(CPR;3;2);VENSTRE(CPR;2));IDAG();"Å")-Forskel)

Bh.
Dorthe
Avatar billede Dorthe Novice
27. januar 2023 - 10:29 #6
Jeg fandt denne formel, som foreløbig ser ud til at virke, som den skal:

=DATO.FORSKEL(DATO(HVIS(OG(ELLER(VENSTRE(HØJRE(A2;4);1)*1>4;VENSTRE(HØJRE(A2;4);1)*1<=9);VENSTRE(HØJRE(A2;6);2)*1<37);2000;HVIS(OG(VENSTRE(HØJRE(A2;4);1)*1>4;VENSTRE(HØJRE(A2;6);2)*1>57);1800;1900))+(VENSTRE(HØJRE(A2;6);2)*1);VENSTRE(HØJRE(A2;8);2)*1;VENSTRE(TEKST(A2;"0000000000");2))*1;IDAG();"y")
Avatar billede Dorthe Novice
06. februar 2023 - 15:53 #7
Nu har jeg så fundet ud af, at den formel, jeg selv havde fundet, laver fejl på flere cpr. nr...

Jeg søger stadig én formel som kan beregne alder ud fra cpr. uanset om cpr. nr. er formateret som tal eller tekst. Dvs. formlen skal være uanset om der er foranstillet 0 eller ej: Dvs. uanset om personer født mellem den 1. og 9. i måneden vises med 9 eller 10 chifre i deres cpr. nr. Gerne også uanset om der er bindestreg eller ej :-)

Tusind tak for at komme med bud!
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