Forfatter |
Emne Søg Emne funktioner
|
Cecilia_Stroejer
Forum Begynder
Medlem: 23.Sep.2013
Land: Danmark
Status: Offline
Point: 13
|
Emne: cpr nr til alder over 99 år Sendt: 02.Okt.2013 kl. 15:01 |
Wow, tak for hurtigt svar! Ja self det giver jo mening - er stadigvæk en novice i excel-formler, men begynder at have en grundlæggende forståelse
|
|
|
|
|
EXCELGAARD
Platin bruger
Medlem: 27.Dec.2012
Land: Denmark
Status: Offline
Point: 5419
|
Sendt: 02.Okt.2013 kl. 14:52 |
Du kan vel bare bruge min formel, uden aldersberegningsdelen:
=DATO(HVIS(OG(ELLER(VENSTRE(HØJRE(E2;4);1)*1=4;VENSTRE(HØJRE(E2;4);1)*1=9);VENSTRE(HØJRE(E2;6);2)*1<37);2000;HVIS(OG(VENSTRE(HØJRE(E2;4);1)*1>4;VENSTRE(HØJRE(E2;6);2)*1>57);1800;1900))+(VENSTRE(HØJRE(E2;6);2)*1);VENSTRE(HØJRE(E2;8);2)*1;VENSTRE(TEKST(E2;"0000000000");2))
PS: Og, delen, der sørger for, altid, at tage datoen med to cifre er: VENSTRE(TEKST(E2;"0000000000");2)
|
Husk, at trykke på [Tak], hvis du kan lide et indlæg. Husk, at trykke på [Accepteret Svar], hvis du kan bruge et løsningsforslag.
|
|
Cecilia_Stroejer
Forum Begynder
Medlem: 23.Sep.2013
Land: Danmark
Status: Offline
Point: 13
|
Sendt: 02.Okt.2013 kl. 14:43 |
Ja, så er der så lige det næste spørgsmål ?
Hvis jeg også gerne vil have fødselsdagen til at stå i en celle som dd-mm-åå vil jeg anvende denne formel:
=DATO(MIDT(E2;5;2);MIDT(E2;3;2);VENSTRE(E2;2)) (cpr nr står i celle E2)
Problemet er så bare at jeg både har cpr nr med 9 (uden foranstillet 0) og 10 cifre - hvor bygger jeg en formel sammen så der tages højde for det??
Helt fantaktisk forum - man lærer jo vildt meget ved at læse indlæggene!! Og så er det virkelig fedt at folk svarer så hurtigt !!!
|
|
Cecilia_Stroejer
Forum Begynder
Medlem: 23.Sep.2013
Land: Danmark
Status: Offline
Point: 13
|
Sendt: 02.Okt.2013 kl. 14:13 |
Hej Excelgaard,
Tak for svar, men den havde jeg nu godt selv regnet ud.
|
|
EXCELGAARD
Platin bruger
Medlem: 27.Dec.2012
Land: Denmark
Status: Offline
Point: 5419
|
Sendt: 30.Sep.2013 kl. 11:43 |
Hej Cecilia,
Hvis du kigger på min formel, så kan du i slutningen finde argumentet 'IDAG()'.
Dette angiver, at alderen bliver beregnet ud fra dags dato - og, her kan du i stedet angive en celle, f.eks. B1, hvor du har en dato, som du ønsker beregnet ud fra.
|
Husk, at trykke på [Tak], hvis du kan lide et indlæg. Husk, at trykke på [Accepteret Svar], hvis du kan bruge et løsningsforslag.
|
|
Cecilia_Stroejer
Forum Begynder
Medlem: 23.Sep.2013
Land: Danmark
Status: Offline
Point: 13
|
Sendt: 30.Sep.2013 kl. 11:39 |
@ Allan,
Mange tak for svar - og formel :) Den ser rigtig fin ud og har hjulpet mig til at forstå hvordan man kan sætte sådanne formler op - tak! Jeg skal mere konkret bruge alderen på en given dato - hvor i formlen skal denne dato placeres? til sidst? , ligesom din tidligere formel for personer op til 99 år?
/Cecilia
|
|
Cecilia_Stroejer
Forum Begynder
Medlem: 23.Sep.2013
Land: Danmark
Status: Offline
Point: 13
|
Sendt: 30.Sep.2013 kl. 11:36 |
@ Excelgaard,
Ja, det kan jeg da godt se nu at der er (den havde jeg simpelthen overset) - super, tak!
//Cecilia
|
|
EXCELGAARD
Platin bruger
Medlem: 27.Dec.2012
Land: Denmark
Status: Offline
Point: 5419
|
Sendt: 30.Sep.2013 kl. 08:12 |
Nu er det ikke fordi jeg skal forklejne nogle af jer, men...
1) Der er altså en ganske almindelig regnearksformel (uden makroer) på det link, som jeg startede med at give! 2) Og, den formel, som er på det link, er BETYDELIGT kortere end den som Allan giver (sorry, Allan :-)
Faktisk er min formel kun ca. halvt så lang:
=DATO.FORSKEL(DATO(HVIS(OG(ELLER(VENSTRE(HØJRE(A1;4);1)*1=4;VENSTRE(HØJRE(A1;4);1)*1=9);VENSTRE(HØJRE(A1;6);2)*1<37);2000;HVIS(OG(VENSTRE(HØJRE(A1;4);1)*1>4;VENSTRE(HØJRE(A1;6);2)*1>57);1800;1900))+(VENSTRE(HØJRE(A1;6);2)*1);VENSTRE(HØJRE(A1;8);2)*1;VENSTRE(TEKST(A1;"0000000000");2))*1;IDAG();"y")
...og, du kan endda gøre den endnu kortere, hvis du ikke (som jeg) er så fanatisk med at sikre dig mod formateringsfejl... ...for, så kan du blot fjerne alle de steder i formlen, hvor jeg ganger med 1 (*1), for at sikre mig, at vi arbejder med tal og ikke tekst.
|
Husk, at trykke på [Tak], hvis du kan lide et indlæg. Husk, at trykke på [Accepteret Svar], hvis du kan bruge et løsningsforslag.
|
|
Allan
Forum Admin
Forum Admin
Medlem: 03.Feb.2010
Land: Danmark
Status: Offline
Point: 10330
|
Sendt: 29.Sep.2013 kl. 22:15 |
Hej Cecilia, Så må vi have en af de lange formler frem Ifølge Wikipedia, kan man ved hjælp at det 7. ciffer i kombination med det 2 cifrede årstal, finde ud af hvornår personen er født. Jeg har forsøgt at lave en formel som tager højde for dette, som virker fra 1858 og frem til nu. Formlen vil virke uanset om du skriver CPR med eller uden bindestreg foran de 4 sidste cifre.
Løbenr. | Årstal |
---|
Ciffer 7 | 00-36 | 37-57 | 58-99 |
---|
0-3 | 1900-1999 | 4 | 2000-2036 | 1937-1999 | 5-8 | 2000-2057 | 1858-1899 | 9 | 2000-2036 | 1937-1999 |
Hvis jeg koger alt dette sammen i en formel, og ønsker at output skal være fødselsdatoen, vil det blive noget á la:
=DATO(HVIS(VENSTRE(HØJRE(A1;4);1)<=3;1900+MIDT(A1;5;2);HVIS(OG(VENSTRE(HØJRE(A1;4);1)=4;MIDT(A1;5;2)<=36);2000+MIDT(A1;5;2);HVIS(OG(VENSTRE(HØJRE(A1;4);1)=4;MIDT(A1;5;2)>=37);1900+MIDT(A1;5;2);HVIS(OG(VENSTRE(HØJRE(A1;4);1)>=5;VENSTRE(HØJRE(A1;4);1)<=8;MIDT(A1;5;2)<=57);2000+MIDT(A1;5;2);HVIS(OG(VENSTRE(HØJRE(A1;4);1)>=5;VENSTRE(HØJRE(A1;4);1)<=8;MIDT(A1;5;2)>58);1800+MIDT(A1;5;2);HVIS(OG(VENSTRE(HØJRE(A1;4);1)=9;MIDT(A1;5;2)<=36);2000+MIDT(A1;5;2);1900+MIDT(A1;5;2)))))));MIDT(A1;3;2);VENSTRE(A1;2)) |
Jeg krydser fingre for at det virker hos dig //Allan
|
|
Cecilia_Stroejer
Forum Begynder
Medlem: 23.Sep.2013
Land: Danmark
Status: Offline
Point: 13
|
Sendt: 27.Sep.2013 kl. 13:31 |
Tak for svar.
Mit problem er så bare at jeg arbejder på en sygehus, hvorfor sikkerhedsniveauet er sat ekstra højt, og jeg har derfor ikke tilladelse til at kører makroer...
Er der andre måde man regne alderen for personer over 99 år?
|
|
EXCELGAARD
Platin bruger
Medlem: 27.Dec.2012
Land: Denmark
Status: Offline
Point: 5419
|
Sendt: 23.Sep.2013 kl. 13:04 |
www.excelgaard.dk/Bib/CPR/ www.excelgaard.dk/Bib/CPR/
|
Husk, at trykke på [Tak], hvis du kan lide et indlæg. Husk, at trykke på [Accepteret Svar], hvis du kan bruge et løsningsforslag.
|
|
Cecilia_Stroejer
Forum Begynder
Medlem: 23.Sep.2013
Land: Danmark
Status: Offline
Point: 13
|
Sendt: 23.Sep.2013 kl. 11:33 |
Hej!
Jeg har brugt denne fantastiske formel til at beregne alderen ud fra cpr. nr. med både 9 og 10 cifre.
=HVIS(LÆNGDE(A2)=10;DATO.FORSKEL(DATO(HVIS(MIDT(A2;5;2)<=HØJRE(ÅR(B2());2);"20"&MIDT(A2;5;2);MIDT(A2;5;2));MIDT(A2;3;2);VENSTRE(A2;2));B2();"y");DATO.FORSKEL(DATO(HVIS(MIDT(A2;4;2)<=HØJRE(ÅR(B2);2);"20"&MIDT(A2;4;2);MIDT(A2;4;2));MIDT(A2;2;2);VENSTRE(A2;1));B2;"y"))
Mit problem er så bare at den kun gælder for personer op til 99 år. Jeg har med en ældre population at gøre og dermed også personer over 99 år. Er der en måde formlen kan ændres/udvides så den også kan beregne personer over 99 år??
På forhånd mange tak!
|
|