Avatar billede amiedk Nybegynder
28. august 2003 - 14:14 Der er 18 kommentarer og
1 løsning

funktion i excel

Hej

Endnu et lille spørgsmål.

Hvis jeg har en kollone med en masse cpr numre ( kun de 6 første ) .. han man så få en funktion til at udregne gennemsnit alderen på dem ??

Malene
28. august 2003 - 14:20 #1
Du kan ikke lave det perfekt hvis du kun kender de første 6 cifre af cpr-nummeret.

En person født den 28-08-03 kan være 0 eller 100 år.

Er der noget fælles for de personer (aldersmæssigt). Er de f.eks. alle født før år 2000?
28. august 2003 - 14:22 #2
Og hvor præcist skal det være. Er det nok at lave beregningen på årstallet, eller skal det være på hele datoen.

Er det f.eks. nok at sige at all der er født i 1973 er 30 år?
Avatar billede amiedk Nybegynder
28. august 2003 - 14:22 #3
Man har ikke nogen mulighed for at finde ud af hvad de er .. det er kunder der er blevet tilmeldt på gaden. Vi har hele deres cpr nr.

kan det lade sig gøre ??
28. august 2003 - 14:24 #4
Hvis det er kunder, du har mødt på gaden, kan vi vel godt regne med at fødselsåret ligger i intervallet 1900-1999.
Avatar billede amiedk Nybegynder
28. august 2003 - 14:27 #5
yeps.. de er jo levende :)
Avatar billede amiedk Nybegynder
28. august 2003 - 14:28 #6
og det er nok at lave beregningen på årstalet.. vi er ligeglade med hvornår de har fødselsdag.. har alligevel ikke tænkt os at sende dem et kort hehe
28. august 2003 - 14:32 #7
Ud for hver person laver du en beregning af alderen. Hvis CPRnr står i A1 hedder formlen:
=HØJRE(A1;2)-3

Gennemsnittet kan så beregnes ved hjælp af denne formel:
=middel(B1:B100)
forudsat at alle personers alder står i område B1 til B100.
Avatar billede amiedk Nybegynder
28. august 2003 - 14:51 #8
ok det kan jeg godt se det logiske i.. men den regner ikke rigtig alder ud. fx 010150 bliver til 47 hvor det jo skulle blive til 53
Avatar billede m_skau Nybegynder
28. august 2003 - 14:55 #9
erikjuuls svar giver en usikkerhed pr. person på op til 1 år minus 1 dag. Hvis det er acceptabelt, så er det det rigtige at gøre. Det bliver lidt mere kompliceret, hvis måned og dag også skal tages tilnærmelsesvist i betragtning. Så kan du f.eks. du for hver række:
* lave CPR nr feltet (kun de seks første) om til en dato
  (f.eks. vha =venstre, =midt, = højre og =sammenkædning)
* bruge =dage360 til at finde antallet af dage mellem fødseldatoen og =idag
* dele resultatet af ovenstående med 360, for at få det udtrykt i år
Og for årsresultatsøjlen skal du finde gennemsnittet med =middel
Avatar billede m_skau Nybegynder
28. august 2003 - 14:57 #10
Hov jeg overså, at amiedk skrev, at det var nok at gøre det på årstallet. Undskyld.
28. august 2003 - 14:59 #11
Beklager - du har helt ret. Denne er bedre:

=100-HØJRE(I6;2)+3
28. august 2003 - 15:03 #12
m skau>> Hvis du havde læst indlæggene herover ville du opdage, at der er accept fra amiedk på kun at foretage beregningen på årstallet.

Dit forslag giver heller ikke et rigtigt resultat i alle tilfælde, da du ikke ud af de første 6 cifre i CPRnr kan aflæse om en person er født i 2003 eller 1903. Det kan du hvis du har alle cifre. Derfor mit første indlæg!
Avatar billede overchord Nybegynder
28. august 2003 - 15:05 #13
Insaet denne funktion i et modul i dit excel ark (Alt + F11 gaar ind i vb editor, vaelg indsaet -> modul):

Function Alder(cpr As String)

dag = Left(cpr, 2)
maaned = Mid(cpr, 3, 2)
aar = Right(cpr, 2)

If aar >= Right(DatePart("yyyy", Now), 2) Then
aar = "19" & aar
Else
aar = "20" & aar
End If

Alder = DateDiff("yyyy", dag & "/" & maaned & "/" & aar, Now)


End Function

Derefter kan du bruge det som en normalt indbygget funktion i excel:

= Alder (A1) f.eks
Avatar billede amiedk Nybegynder
28. august 2003 - 15:05 #14
m_skau .. yeps, men det er slet ikke nødvendigt.. det skal bare være et ca antal, da det nok kommer til at blive taget ud fra flere 1000 kunder, så opdager de sgu nok ikke at den ene lige er blevet et år ældre ;)

Erikjuul... yepsen.. det var den kode jeg også sad og kiggede på, men jeg havde rodet mig ud i noget med 103 istedet for hehe .. så med din så virker det nu .. jubii :)

Kæmpe tak for hjælpe :)
Avatar billede amiedk Nybegynder
28. august 2003 - 15:06 #15
overchord .. det var lige vildt nok hehe fatter hat af hvad du skrev der :)) men det er sikkert rigtigt godt hvis man kan finde ud af det :) .. dog er der ingen grund til at lave så kompliceret ting i min lille ting her :)

Ellers tak for hjælpen :)
Avatar billede overchord Nybegynder
28. august 2003 - 15:18 #16
ok, det virker ogsaa kun paa aret lige nu, men kunne tweakes til at virke paa datoer hvis det bliver noedvendigt en gang :-)
Avatar billede amiedk Nybegynder
28. august 2003 - 15:30 #17
det virker den løsning jeg har brugt jo også kun på dette år.. men så går jeg bare ind og laver det om til nytår :)

hehe så fortæller jeg det ikke til dem, så hvis de fyre mig så virker det ikke næste år heheh
Avatar billede overchord Nybegynder
28. august 2003 - 15:31 #18
ok hvis du benytter den funktion jeg gav dig vil den virke hvert aar uden aendringer. Naar koden er algt i modulet er det nemmere fordi du kan arbejde med det som en normal funktion.
Avatar billede amiedk Nybegynder
28. august 2003 - 15:51 #19
ok jeg vil se på det på et senere tidspunkt.. det jeg laver nu er stadigvæk kun et udkast og vi skal lige se om det overhoved er det cheferne vil have.
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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