Cum se calculeaza data nasterii ?

Informatii despre cum se utilizeaza Microsoft Excel 2007. Calcule, Formule, Functii, Tabele pivot, Analiza datelor, etc
Închis
Green eyes
Mesaje: 36
Membru din: Mie Dec 30, 2009 1:45 pm
Localitate: Timişoara

Cum se calculeaza data nasterii ?

Mesaj de Green eyes » Mar Feb 15, 2011 3:54 pm

Salutare,

Ce mai faceti ? N-am mai intrat pe forum de un kilogram de ani, very busy, do not ask... :D. Vad ca sunteti foarte activi, sunt mandru de voi :)

Uite o intrebare buclucasa, poate o luati in considerare pentru concurs: un baietel a implinit in 10 februarie 2011 nu mai putin de 6 ani, 7 luni si 20 de zile.

Intrebarea este care este data nasterii acelui baietel ?

Am incercat eu ceva, dar nu este tocmai corecta solutia, adica am verificat-o cu DATEDIF si... a iesit altceva, adica eroarea este de o zi.

Asadar:

Celula A11 = 6 [ani];
Celula B11 = 7 [luni];
Celula C11 = 20 [de zile]
Celula D11 = 10-Feb-2011 [data la care baietelul a implinit 6 ani, 7 luni si 20 de zile];
Celula E11 = DATE(YEAR(D11)-A11,MONTH(D11)-B11,DAY(D11)-C11) => formula de calcul a datei de nastere. Rezultatul este 20-Jun-2004.

Din pacate, nu este corecta data. Eroarea se scoate la lumina folosind functia DATEDIF de trei ori:

DATEDIF(E11,D11,"Y") => 6 ani => corect;
DATEDIF(E11,D11,"Ym") => 7 luni => corect;
DATEDIF(E11,D11,"md") => 21 de zile => Oops, ar trebui sa fie doar 20 de zile (rezultatele returnate de DATEDIF sunt corecte). Inseamna ca eroarea este in celula E11.

O alta situatie ar fi pentru un bebelus de 2 luni si 28 de zile care se vor implini in 10 mai 2011. Cu formula mea rezulta ca e nascut in 10 februarie 2011, dar cu DATEDIF rezulta ca ar avea 3 luni si 0 zile (ceea ce este corect).

Unde este greseala ? Nu intreb ca sa va testez, ci intreb pentru ca n-am reusit sa ii dau de capat :? . Solutia corecta ar trebui sa elimine erorile pentru ambele situatii de mai sus.

Va multumesc.

P.S. Am vazut pe unii ca reusesc sa scrie pe forum cu diacriticile romanesti. Cum fac ? Eu de obicei scriu cu diacritice, dar pe forum nu pot (folosesc WinXP).

AdiR
Moderator
Moderator
Mesaje: 209
Membru din: Sâm Feb 20, 2010 4:06 pm
Localitate: Timisoara

Re: Cum se calculeaza data nasterii ?

Mesaj de AdiR » Mar Feb 15, 2011 4:37 pm

eu am o intrebare: de unde ai functia DATEIF?

eu am folosit functia:
=DATE(YEAR(EDATE(D11,(-6*12-7))),MONTH(EDATE(D11,(-6*12-7))),DAY(EDATE(D11,(-6*12-7)))-C11) rezultatul este tot 20/06/2004.

daca stii sigur ca data nu e cea corecta, eu ma intreb dc nu cumva eroarea tine de numarul de zile din anii bisecti.

la mine rezultatul DATEDIF(E11,D11,"md") este 18 zile...

AdiR
Moderator
Moderator
Mesaje: 209
Membru din: Sâm Feb 20, 2010 4:06 pm
Localitate: Timisoara

Re: Cum se calculeaza data nasterii ?

Mesaj de AdiR » Mar Feb 15, 2011 4:50 pm

legat de a doua problema,
folosind aceeasi formula:
=DATE(YEAR(EDATE(D16,(-6*0-2))),MONTH(EDATE(D16,(-6*0-2))),DAY(EDATE(D16,(-6*0-2)))-28), unde D16 este 10/05/2011 rezultatul de aceasta data este corect: 10/02/2011.

eu sunt aproape convins ca acea greseala provine datorita faptului ca februarie 2008 a avut 29 de zile, iar prin scaderea numarului de zile nu cred ca se rezolva problema.
trebuie gasit ceva ce tine cont de anii bisecti...

AdiR
Moderator
Moderator
Mesaje: 209
Membru din: Sâm Feb 20, 2010 4:06 pm
Localitate: Timisoara

Re: Cum se calculeaza data nasterii ?

Mesaj de AdiR » Mar Feb 15, 2011 6:05 pm

acum sunt convins... :D
utilizand formula ta
in celula E11 = DATE(YEAR(D11)-A11,MONTH(D11)-B11,DAY(D11)-C11), aceasta nu tine cont ca un an are cu o zi in plus, fiind bisect (anul 2008)
daca de ex ai in A1: 29/03/2011
iar in A2 ai DATE(YEAR(A1),MONTH(A1)-1,DAY(A1))
rezultatul nu va fi 29/02/2011, aceasta data neexistand ci rezultatul este 01/03/2011.
ca atare formula pierde pe drum o zi

probabil ca DATEIF sesizaza ca in intervalul 20/06/2004 si 10/02/2011 este un an bisect.
poate-mi satisfaci curiozitatea cu acest DATEIF :shock:

Green eyes
Mesaje: 36
Membru din: Mie Dec 30, 2009 1:45 pm
Localitate: Timişoara

Re: Cum se calculeaza data nasterii ?

Mesaj de Green eyes » Mar Feb 15, 2011 7:12 pm

Salut AdiR,

Mulţumesc mult pentru răspunsuri. Funcţia la care am făcut referire nu este DATEIF, ci este DATEDIF.

Se pare că Microsoft a făcut o mică boroboaţă în Excel 2007, adică a lăsat funcţia DATEDIF acolo, există, se poate folosi (moştenită încă de pe vremea lui Excel 2000), dar a înlăturat orice explicaţii din "Help" pentru această funcţie. Hmm, pretty weird... Probabil că funcţia ar genera "mici" erori (de genul celei semnalate de mine ?), aşa că probabil că au vrut să o cam ascundă sub preş.

Soluţia pe care o caut eu nu are voie să piardă nicio zi pe drum, trebuie să fie exactă. Probabil că există o legătură cu a 29-a zi a lui februarie. Voi căuta un contraexemplu din care să rezulte acelaşi tip de eroare, fără să fie "implicată" luna februarie. Una peste alta, eu sunt de părere că problema este uşor spinoasă, destul de rebelă, cu greu se lasă rezolvată, ceea ce o face şi mai frumoasă. Voi mai încerca, dacă dau peste soluţia magică, o public pe forum.

O seară plăcută tuturor,
Green eyes.

smcsa
Mesaje: 2805
Membru din: Mar Sep 29, 2009 7:29 pm
Localitate: Timisoara

Re: Cum se calculeaza data nasterii ?

Mesaj de smcsa » Mar Feb 15, 2011 7:20 pm

Green eyes scrie:dar a înlăturat orice explicaţii din "Help"
Asa ceva nu e "copyright MS" :lol: Daca as avea doar un euro pentru fiecare chestie nedocumentata din IT, va scriam acum din Desertul Atacama (asta pentru ca acolo se termina asa-zisul "Dakar", unde as fi concurat) :lol:

AdiR
Moderator
Moderator
Mesaje: 209
Membru din: Sâm Feb 20, 2010 4:06 pm
Localitate: Timisoara

Re: Cum se calculeaza data nasterii ?

Mesaj de AdiR » Mar Feb 15, 2011 9:43 pm

jur ca nu gasesc nicun DATEDIF nici in varianta 2007 nici in varianta 2003.
poate o fi un UDF...
hm...

smcsa
Mesaje: 2805
Membru din: Mar Sep 29, 2009 7:29 pm
Localitate: Timisoara

Re: Cum se calculeaza data nasterii ?

Mesaj de smcsa » Mar Feb 15, 2011 9:54 pm


AdiR
Moderator
Moderator
Mesaje: 209
Membru din: Sâm Feb 20, 2010 4:06 pm
Localitate: Timisoara

Re: Cum se calculeaza data nasterii ?

Mesaj de AdiR » Mie Feb 16, 2011 10:40 am

Revin cu o varianta.
Inteleg ca vrei sa aflii data nasterii unei persoane stiind ca la o anume data (10/02/2011) baietelul in cauza are 6 ani, 7 luni si 20 de zile.
Atunci plecand de la organizarea datelor tale:
Celula A11 = 6 [ani];
Celula B11 = 7 [luni];
Celula C11 = 20 [de zile]
Celula D11 = 10-Feb-2011 [data la care baietelul a implinit 6 ani, 7 luni si 20 de zile];
urmeaza ca in celula E11 sa calculam data nasterii.
Dar stiind ca odata la 4 ani apare un an bisect, atunci trebuie sa luam in calcul o zi in plus, la 8 ani 2 zile, s.a.m.d
In acest caz daca calculam INT(A11/4) aflam nr de zile ce trebuie scazute in plus.
Formula din E11 devine: =DATE(YEAR(D11)-A11,MONTH(D11)-B11,DAY(D11)-C11-INT(A11/4)).
Eu cred ca asta rezolva problema aflarii zilei de nastere.

Închis

Înapoi la “Intrebari despre Excel 2007”