Page 1 of 1

Age of all individuals

Posted: 23 Mar 2016 04:39
by waky53
I am a new user of FH6 having come across from FTM.
Is there a way to get a report or listing of the ages of every individual in the system?
I have had a look through the forum and tried the FH6 help, but was unable to find anything.
Regards
David

Re: Age of all individuals

Posted: 23 Mar 2016 04:44
by BillH
David,

What age do you want? If you want current age, that only works for people who are still alive. If you want age at death, that only works for people who are dead for which you know the actual birth date and death date. Can you give more detail on what you actually want?

Bill

Re: Age of all individuals

Posted: 23 Mar 2016 06:29
by waky53
I want both so I can see and compare the ages of everyone.
If it takes 2 reports that would be OK.

Re: Age of all individuals

Posted: 23 Mar 2016 10:16
by tatewise
Welcome to the FHUG David.
BTW: As a newcomer I recommend you work through how_to:key_features_for_newcomers|> Key Features for Newcomers.

One way of achieving those Ages is to add a Column to the Records Window.

In the Records Window on the Individuals tab use Lists > Configure Record Window Columns.
Scroll to bottom of left-hand list and select <Other...> then click > in centre.
In Heading: enter Largest Age
In Expression: enter =TextIf( Exists(%INDI.DEAT%), AgeAt(%INDI%,EstimatedDeathDate(%INDI%, MID)), EstimatedAgeAt(%INDI%,Today(),AVG) )
(Copy and Paste that Expression to avoid typing mistakes.)
Finally click OK and OK again.

What that Expression does is test if a Death Event exists.
If so, it computes the Age At Estimated Death Date which uses actual Death Date if it exists, otherwise estimates it from other events.
If no Death Event, it computes Estimated Age Today.

Of course if any person has no Birth Date, or insufficient other dates, then no Age can be computed.

Re: Age of all individuals

Posted: 23 Mar 2016 17:26
by BillH
David,

For the age at death there is also a standard query. Use View > Standard Queries > Age at Death (all).

Bill

Re: Age of all individuals

Posted: 23 Mar 2016 17:46
by tatewise
Yes, but that Query only works if there is both a specified Birth Date and a specified Death Date.

Re: Age of all individuals

Posted: 23 Mar 2016 21:07
by brianlummis
Mike

I thought I would give your Query a try. Is there any way of filtering out estimated ages in excess of say 110 years. I have numerous estimated ages over 100, the oldest being 367 year!

Many thanks

Brian

Re: Age of all individuals

Posted: 23 Mar 2016 23:10
by tatewise
I actually suggested using the Records Window because you asked to obtain an Age for every Individual.
But a Query is an alternative approach that allows Individuals to be conditionally excluded.

I have slightly revised the Column Expression for Age to convert it to a number:

=NumberIf( Exists(%INDI.DEAT%), AgeAt(%INDI%,EstimatedDeathDate(%INDI%, MID)), EstimatedAgeAt(%INDI%,Today(),AVG) )

To exclude large values use a Rows tab filter such as:

Condition: Exclude if
Expression: =NumberIf( ...as above... )
Operator: is greater than
Value: 110

You can similarly exclude those without an Age by using a filter the same as above but with Operator: is null

Re: Age of all individuals

Posted: 24 Mar 2016 17:26
by brianlummis
Sorry Mike - I used the wrong terminology as it wasn't a Query but using the Expression in the Records Window that gave the high ages. Can these be eliminated via the Expression or is it something that we have to live with.

Re: Age of all individuals

Posted: 24 Mar 2016 18:11
by tatewise
Yes, I presume it is only the EstimatedAgeAt() that needs restricting and so the following will work:

=NumberIf( Exists(%INDI.DEAT%), AgeAt(%INDI%,EstimatedDeathDate(%INDI%, MID)), TextToNumber( TextIf( EstimatedAgeAt(%INDI%,Today(),AVG) <= 110, EstimatedAgeAt(%INDI%,Today(),AVG), "" ) ) )

Alternatively, perhaps slightly clearer, TextToNumber("") appears to be the only way to yield an empty number:

=NumberIf( Exists(%INDI.DEAT%), AgeAt(%INDI%,EstimatedDeathDate(%INDI%, MID)), NumberIf( EstimatedAgeAt(%INDI%,Today(),AVG) <= 110, EstimatedAgeAt(%INDI%,Today(),AVG), TextToNumber("") ) )

Re: Age of all individuals

Posted: 24 Mar 2016 23:17
by brianlummis
Thanks Mike - Perfect!