# Excel - Födelsedag till Ålder!
Author: rogerth

Fråga 1: Har en lista med personers födelsedag ÅÅMMDD (format Allmänt). Använder formeln: =ÅR(NU))-EXTEXT(19&A1;1;4). Funkar perfekt med personer födda på 1900-talet, men inte på födda 2000 och framåt. Hur skriver man om formeln så att den fungerar för både födda 1900 0ch 2000 i samma kolumn?

Fråga 2: En annan sak är att om det är en tom cell för födelsedag så skriver formeln in 1993 eller 1992. Varför, och hur åtgärda detta?

Hoppas att någon som är duktig på XL kan hjälpa mig!

Mvh Rogerth

## Comment 1
Author: Halvdansken

Har du bara två siffror i år? (ÅÅMMDD istället för ÅÅÅÅMMDD)

Vad står det i A1 - A4? Det verkar som om du lägger till "19" i början, och det funkar ju inte om man är född "20", om du begriper.

## Comment 2
Author: rogerth

Visst - formeln i A2 lägger ju till 19 och hämtar ju från A1 startposition 1 och räknar 4 tecken. Därför undrade jag:

Går det att skriva om formeln så att den fungerar för både födda 1900 0ch 2000 i samma kolumn? Eller använda en anna formel? Jag är övertygad om att det går, men som sagt var - Hur?

## Comment 3
Author: Halvdansken

Är det inte enklare att bara skriva 4 siffror i årtalet och dra bort det från aktuellt årtal? Annars får du göra den klassiska Y2K varianten (kan inte Excelmacron)

If YY < 20 then move 20 to CC else move 19 to CC.

Alltså att du bestämmer dig för en brytpunkt, att alla som är födda före 2020 är per automatik födda på 2000 talet, annasr är man född på 1900 talet. Du kan ju givetvis själv bestämma vilken brytpunkt du vill ha.

YY = Year CC = Century.

Nu vet du i varje falla vad 2000tals problematiken handlade om.  Jag satt i 2 år och scannade COBOL program för just detta.

## Comment 4
Author: Halvdansken

2012 - 19 = 1993, så där är svaret på den frågan.

## Comment 5
Author: Kaj

Klassiskt problem som alla programerare hade inför milleniumskiftet då programen skulle ändras. Hur veta om en peson var född 1903 eller om det var en person som var född 2003 när man bara använde 2 siffror för årtalet.

Men du har ju fått tips om lösningen här ovan

## Comment 6
Author: rogerth

Hej igen och tack för era svar! Jag har nu fastnat för den här varianten som verkar fungera, xempel:

A1 födelsedatum i format Datum **YYYY-MM-DD**

B1 formel **\=DATEDIF(A1;IDAG();"y")&" år”**

Fungerar tydligen både för födda 1900-talet och 2000-talet.

## Comment 7
Author: Halvdansken

Ja, om du har 4 siffror i årtalet så fungerar det helt av sig själv...

## Comment 8
Author: rogerth

Problemet som uppstår om A1 är tom blir ju att i B1 skriver formeln (=DATEDIF(..osv) siffrorna 112. Det är ju ok om alla i kolumnen A är ifyllda men ganska tråkigt annars.

Har försökt skriva in en OM-formel i formeln som ovan nämnts, men inte lyckats. Jag vill alltså, att: Om A1 är tom gör inget i B1, alternativt skriv "Saknas" i B1.

Tacksam om någon kan hjälpa mig med detta!

## Comment 9
Author: Halvdansken

IF A1 = "" (eller space) b1 = "saknas"?

Men jag vet inget om hur excelformler fungerar.

## Comment 10
Author: rogerth

Precis som jag beskrev. Men... hur kopplar man ihop det med formeln jag använder och beskrev den 6 jan. (#6)?

Har försökt men inte "fått till det" s.a.s. ![Rynkar på näsan](http://datorn.ifokus.se/js/lib/tiny_mce/plugins/emotions/img/smiley-frown.gif "Rynkar på näsan")

## Comment 11
Author: Halvdansken

IF A1 = "" (eller space) b1 = "saknas"

ELSE "räkna ut ålder-formel".

## Comment 12
Author: rogerth

Hej igen "Halvdansken".

Jo, vi har tänkt rätt både du och jag. Det gällde bara att få XL att acceptera en formel av vårt tänk :-). Jag har knåpat ihop en som XL tycks gilla, ser ut så här:

\=OM(G1="";"Saknas";(DATEDIF(G1;IDAG();"y")&" år"))

Ha... där satt den! Hoppas att någon annan kan få användning av den framdeles!

Tack för din medverkan "Halvdansken"! ![Glad](http://datorn.ifokus.se/js/lib/tiny_mce/plugins/emotions/img/smiley-smile.gif "Glad")

## Comment 13
Author: Halvdansken

30 års programmering ska väl kunna vara till nån nytta...
