[Excel] Leeftijd uitrekenen obv. geboorte en sterfdatum

Pagina: 1
Acties:

Onderwerpen

Vraag


Acties:
  • 0 Henk 'm!

  • Marc Verbeek
  • Registratie: April 2024
  • Laatst online: 08-04-2024
Ik hoop dat iemand mijn kan helpen om de leeftijd te berekenen op basis van de geboorte en sterfdatum. Dat lukt prima met de formule: =DATUMVERSCHIL(G3;H3;"y") voor alle personen die in dezelfde eeuw geboren en overleden zijn. Dat lukt me niet als bijvoorbeeld iemand is geboren op 27-05-1891 en is overleden op 27-10-1944.

Is daar een eenvoudige oplossing voor?

Alvast erg bedankt!
Afbeeldingslocatie: https://tweakers.net/i/FmLiX_vIcf4f0A85EQFquAqCniY=/full-fit-in/4000x4000/filters:no_upscale():fill(white):strip_exif()/f/image/X91Y0yvcs50O3wFSyF4oP6pI.png?f=user_large
...

Alle reacties


Acties:
  • 0 Henk 'm!

  • RaZ
  • Registratie: November 2000
  • Niet online

RaZ

Funky Cold Medina

Zoek eens op de functie DATUMVERSCHIL ;)

Acties:
  • 0 Henk 'm!

  • Hahn
  • Registratie: Augustus 2001
  • Laatst online: 17:15
Via zoeken bij google naar 'calculate age excel' kom ik tegen dat je ([overlijdensdatum] - [geboortedatum]) / 365 zou moeten werken. Heb je dat al geprobeerd?

The devil is in the details.


Acties:
  • +2 Henk 'm!

  • evilution
  • Registratie: Maart 2012
  • Niet online

evilution

Vreselijk bijdehand

|<----------------------------------------------arm length---------------------------------------------->|
|<-------------------------------------------where the cat is--------------------------------------------->|


Acties:
  • +3 Henk 'm!

  • Bezulba
  • Registratie: November 2000
  • Laatst online: 17:24

Bezulba

Formerly known as Eendje

Omdat ik het wel een geinig probleem vond ben ik even gaan zoeken en waarschijnlijk loop je tegen het volgende probleem aan:
Datums worden opgeslagen als sequentiële seriële getallen, zodat deze datums in berekeningen kunnen worden gebruikt. 1 januari 1900 is standaard het seriële getal 1 en 1 januari 2008 is het seriële getal 39448, omdat deze datum 39.447 dagen na 1 januari 1900 valt.
je gaat dus negatief en dan begrijpt hij het niet meer.

Snelle, foute oplossing, bij beide data 100 jaar ( of 1000) optellen in je berekening.

[ Voor 8% gewijzigd door Bezulba op 08-04-2024 10:51 ]

blup


Acties:
  • 0 Henk 'm!

  • KNed
  • Registratie: Juni 2006
  • Laatst online: 15:51
Hahn schreef op maandag 8 april 2024 @ 10:49:
Via zoeken bij google naar 'calculate age excel' kom ik tegen dat je ([overlijdensdatum] - [geboortedatum]) / 365 zou moeten werken. Heb je dat al geprobeerd?
Niet dus omdat Excel datums voor 1-1-1900 niet snapt...

Acties:
  • 0 Henk 'm!

  • Hahn
  • Registratie: Augustus 2001
  • Laatst online: 17:15
KNed schreef op maandag 8 april 2024 @ 10:56:
[...]

Niet dus omdat Excel datums voor 1-1-1900 niet snapt...
Ik zei expres 'heb je dat geprobeerd?' om TS zelf wat te laten zoeken/proberen, want de eigen inzet ontbrak :)

The devil is in the details.


Acties:
  • +1 Henk 'm!

  • Chaos
  • Registratie: November 1999
  • Niet online
Hahn schreef op maandag 8 april 2024 @ 10:49:
Via zoeken bij google naar 'calculate age excel' kom ik tegen dat je ([overlijdensdatum] - [geboortedatum]) / 365 zou moeten werken. Heb je dat al geprobeerd?
Dan zou je 365.25 moeten gebruiken vanwege schrikkeljaren, maar dat klopt ook niet precies en dan ga je soms alsnog de mist in als iemand heel dicht bij zij/haar verjaardag overlijdt. Het makkelijkst lijkt me [sterfjaar] - [geboortejaar] en als [sterfmaand+dag] < [geboortemaand+dag] dan haal je er nog 1 jaar vanaf. Excel heeft vast wel een functie om een datum in jaar-maand-dag te ontleden.

Acties:
  • +1 Henk 'm!

  • LordSinclair
  • Registratie: Oktober 2014
  • Laatst online: 19:04
En zo zet een slimme leraar toch zijn leerlingen aan het nadenken.

There's no need to kneel, I'm a very democratic sort of lord.


Acties:
  • 0 Henk 'm!

  • DataGhost
  • Registratie: Augustus 2003
  • Laatst online: 26-04 11:54

DataGhost

iPL dev

De eenvoudige oplossing is een fatsoenlijk office-pakket gebruiken. LibreOffice bijvoorbeeld heeft hier geen enkel probleem mee en geeft in de eerste rij netjes "53" terug. Alle andere Excel-"oplossingen" gaan vage afwijkingen kunnen hebben met bijv. schrikkeljaren, afhankelijk van hoe nauwkeurige resultaten je wilt hebben. Of je moet iets met macros gaan doen die die gekke 1900-beperking niet hebben. Zoals dit monster-ding* wat je tegenkomt als je zoekt naar datedif before 1900.

* overigens nog met een leuke verrassing erin omdat USA

[ Voor 28% gewijzigd door DataGhost op 08-04-2024 11:08 ]


Acties:
  • +1 Henk 'm!

  • F_J_K
  • Registratie: Juni 2001
  • Niet online

F_J_K

Moderator CSA/PB

Front verplichte underscores

offtopic:
De toolkeuze laten afhangen van 1 voor velen niet-relevant minpunt, is misschien wat overdreven. Maar dit is hier offtopic en haast flamebait. Als je een discussie wil starten over wat de beste spreadsheet-tool is: maak daar ajb een los discussietopic voor.

En @Marc Verbeek welkom! Probeer, zeker bij huiswerk etc, ajb volgende keren bij openen van een topic aan te geven wat er aan troubleshooting is geprobeerd / wat is gezocht / etc.


Optie zonder VBA: zoals Bezulba in "[Excel] Leeftijd uitrekenen obv. geboorte en sterfdatum" zegt 1000 jaar optellen bij beide datums. https://www.mrexcel.com/e...l-with-dates-before-1900/
If the cell contains a real date, you want to add 1,000 years. An easy way to do this is to use the EDATE function and add 12,000 months to the date. =EDATE(A4,12000) returns a date that is 1,000 years after a valid date in A4. Note that this function requires the Analysis Toolpak in versions prior to Excel 2007. If you can ensure that the Analysis Toolpak is installed, you can use =DATE(YEAR(A4)+1000,MONTH(A4),DAY(A4)) .
of
=IF(ISTEXT(B4), DATEVALUE(LEFT(B4,LEN(B4)-4) & RIGHT(B4,4)+1000), EDATE(B4,12000)) - IF(ISTEXT(A4), DATEVALUE(LEFT(A4, LEN(A4)-4) & RIGHT(A4,4)+1000), EDATE(A4,12000))

[ Voor 7% gewijzigd door F_J_K op 08-04-2024 12:06 ]

'Multiple exclamation marks,' he went on, shaking his head, 'are a sure sign of a diseased mind' (Terry Pratchett, Eric)


Acties:
  • 0 Henk 'm!

  • Lustucru
  • Registratie: Januari 2004
  • Niet online

Lustucru

26 03 2016

Bezulba schreef op maandag 8 april 2024 @ 10:50:
je gaat dus negatief en dan begrijpt hij het niet meer.

Snelle, foute oplossing, bij beide data 100 jaar ( of 1000) optellen in je berekening.
Ook dat gaat mis: 1-1-1899 is geen datum maar een string, waar weinig aan bij op te tellen valt. De enige oplossingen zijn dus handmatige interpretatie van de tekst dmv VBA, een wat complexere formule zoals @F_J_K geeft onder 'of' of datums gemanipuleerd invoeren.

[ Voor 3% gewijzigd door Lustucru op 08-04-2024 14:02 ]

De oever waar we niet zijn noemen wij de overkant / Die wordt dan deze kant zodra we daar zijn aangeland


Acties:
  • 0 Henk 'm!

  • Bezulba
  • Registratie: November 2000
  • Laatst online: 17:24

Bezulba

Formerly known as Eendje

Lustucru schreef op maandag 8 april 2024 @ 13:59:
[...]

Ook dat gaat mis: 1-1-1899 is geen datum maar een string, waar weinig aan bij op te tellen valt. De enige oplossingen zijn dus handmatige interpretatie van de tekst dmv VBA, een wat complexere formule zoals @F_J_K geeft onder 'of' of datums gemanipuleerd invoeren.
Dan is stap 1 van de string een fatsoenlijke datum maken. Dan 1000 erbij en je bent klaar.

blup


Acties:
  • 0 Henk 'm!

  • Lustucru
  • Registratie: Januari 2004
  • Niet online

Lustucru

26 03 2016

Bezulba schreef op maandag 8 april 2024 @ 14:08:
[...]

Dan is stap 1 van de string een fatsoenlijke datum maken. Dan 1000 erbij en je bent klaar.
Die volgorde kan dus niet. :) 1-1-1899 is in excel nooit een 'fatsoenlijke' datum. Je maakt er een datum van door een datum in de toekomst te prikken... Maar helemaal foolproof is dat ook niet: tussen 1582 en 1917 mag je eerst uitzoeken welke kalender is gebruikt, afhankelijk van de locatie en dan zit je ook nog met wat varianten in schrikkeldagen... :)

In dit geval, waarbij het puur gaat om leeftijd is de makkelijkste oplossing om beide datums als tekst te interpreteren, de beide jaartallen van elkaar af te trekken en 1 er af te trekken als de sterfdag voor de geboortedag ligt.

Iets als (dit nog zonder correctie van de geboortedag): =RECHTS(TEKST(A2;"JJJJ");4)-RECHTS(TEKST(A1;"JJJJ");4)

[ Voor 23% gewijzigd door Lustucru op 08-04-2024 14:32 ]

De oever waar we niet zijn noemen wij de overkant / Die wordt dan deze kant zodra we daar zijn aangeland

Pagina: 1