calcul varsta din data nasterii de tip...

Informatii despre cum se utilizeaza Microsoft Excel 2007. Calcule, Formule, Functii, Tabele pivot, Analiza datelor, etc
adof
Mesaje: 466
Membru din: Mie Iul 14, 2010 12:42 pm
Localitate: Sibiu

Re: calcul varsta din data nasterii de tip...

Mesaj de adof » Lun Aug 09, 2010 1:24 pm

mulţumesc

cristinael
Mesaje: 210
Membru din: Mie Iun 15, 2011 8:47 pm

Re: calcul varsta din CNP de tip...

Mesaj de cristinael » Mar Mar 20, 2012 9:23 am

Cum se calculeaza data nasterii din cnp?

alcoool2
Mesaje: 969
Membru din: Mie Dec 15, 2010 4:25 pm

Re: calcul varsta din data nasterii de tip...

Mesaj de alcoool2 » Mar Mar 20, 2012 9:37 am

Pai dacă presupunem ca ai CNP-ul in celula A1 atunci formula ar arata cam asa:

Cod: Selectaţi tot

=IF(LEFT(A1;1)<3;DATE(1900+MID(A1;2;2);MID(A1;4;2);MID(A1;6;2));DATE(2000+MID(A1;2;2);MID(A1;4;2);MID(A1;6;2)))
PS formula nu tine cont de cei născuți în perioada 1800-1899
10Q itlearning

Indigo
Mesaje: 774
Membru din: Sâm Sep 26, 2009 8:05 pm

Re: calcul varsta din data nasterii de tip...

Mesaj de Indigo » Mar Mar 20, 2012 8:21 pm

alcoool2 scrie:Pai dacă presupunem ca ai CNP-ul in celula A1 atunci formula ar arata cam asa:

Cod: Selectaţi tot

=IF(LEFT(A1;1)<3;DATE(1900+MID(A1;2;2);MID(A1;4;2);MID(A1;6;2));DATE(2000+MID(A1;2;2);MID(A1;4;2);MID(A1;6;2)))
PS formula nu tine cont de cei născuți în perioada 1800-1899
In formula s-a strecurat o greseala, corect ar fi asa:
=IF(LEFT(A1;1)>3;DATE(1900+MID(A1;2;2);MID(A1;4;2);MID(A1;6;2));DATE(2000+MID(A1;2;2);MID(A1;4;2);MID(A1;6;2)))
sau asa
=IF(LEFT(A1;1)<3;DATE(2000+MID(A1;2;2);MID(A1;4;2);MID(A1;6;2));DATE(1900+MID(A1;2;2);MID(A1;4;2);MID(A1;6;2)))

alcoool2
Mesaje: 969
Membru din: Mie Dec 15, 2010 4:25 pm

Re: calcul varsta din data nasterii de tip...

Mesaj de alcoool2 » Mar Mar 20, 2012 9:05 pm

Eu nu cred ca am gresit pentru ca:
1. structura IF este astfel =IF(conditie; rezultat pentru adevarat; rezultat pentru fals)
2. semnificatia primei cifre din CNP este urmatoarea:
1 - persoane de sex masculin născute între 1 ianuarie 1900 şi 31 decembrie 1999
2 - persoane de sex feminin născute între 1 ianuarie 1900 şi 31 decembrie 1999
5 - persoane de sex masculin născute între 1 ianuarie 2000 şi 31 decembrie 2099
6 - persoane de sex feminin născute între 1 ianuarie 2000 şi 31 decembrie 2099
3. deci conditia ar fi astfel daca prima cifra mai mica ca 3 atunci anul este cu 1900 altfel este cu 2000
10Q itlearning

Indigo
Mesaje: 774
Membru din: Sâm Sep 26, 2009 8:05 pm

Re: calcul varsta din data nasterii de tip...

Mesaj de Indigo » Mie Mar 21, 2012 12:11 am

@alcoool2
[structura IF este astfel =IF(conditie; rezultat pentru adevarat; rezultat pentru fals)
asa este daca functia Left folosita nu ar returna text, in felul acesta conditia IF-ului nefiind indeplinita, va returna intotdeauna rezultatul pentru fals
Evident ca nici ce am scris eu nu este valabil. Eu am testat formula ta pe CNP-ul meu si mi-a dat ca m-am nascut in 20XX. evident ca formula returna , rezultatul pentru fals al IF-ului.

alcoool2
Mesaje: 969
Membru din: Mie Dec 15, 2010 4:25 pm

Re: calcul varsta din data nasterii de tip...

Mesaj de alcoool2 » Mie Mar 21, 2012 7:53 am

Nu stiu de ce dar pe excel-ul de la servici a mers. Oricum avem o varianta corectata ;)

Cod: Selectaţi tot

=IF(VALUE(LEFT(A1;1))<3;DATE(1900+MID(A1;2;2);MID(A1;4;2);MID(A1;6;2));DATE(2000+MID(A1;2;2);MID(A1;4;2);MID(A1;6;2)))
10Q itlearning

cristinael
Mesaje: 210
Membru din: Mie Iun 15, 2011 8:47 pm

Re: calcul varsta din CNP

Mesaj de cristinael » Joi Mar 22, 2012 7:26 pm

Multumesc pentru raspuns,insa vroiam din CNP sa aflu varsta.Stiti vreo formula?

Indigo
Mesaje: 774
Membru din: Sâm Sep 26, 2009 8:05 pm

Re: calcul varsta din data nasterii de tip...

Mesaj de Indigo » Joi Mar 22, 2012 8:54 pm

Daca in B2 ai CNP-ul.....

=DATEDIF(DATE(IF(VALUE(RIGHT(YEAR(TODAY());2))>VALUE(MID(B2;2;2));LEFT(YEAR(TODAY());2)&MID(B2;2;2);(VALUE(LEFT(YEAR(TODAY());2))-1)*100+VALUE(MID(B2;2;2)));MID(B2;4;2);MID(B2;6;2));TODAY();"y")

Functie de setarile regionale inlocuieste ";" cu ","

Catalin B.
Moderator
Moderator
Mesaje: 813
Membru din: Vin Sep 09, 2011 4:05 pm
Localitate: Iaşi

Re: calcul varsta din data nasterii de tip...

Mesaj de Catalin B. » Vin Mar 23, 2012 8:30 am

Cu functia DATE, extrage din CNP data nasterii:=DATE(MID(B2;2;2);MID(B2;4;2);MID(B2;6;2))
Calculul varstei dupa o data oarecare introdusa in B2, se face cu:
="Vârsta este "&DATEDIF(B2;TODAY();"y")&" ani, "&DATEDIF(B2;TODAY();"ym")&" luni şi "&DATEDIF(B2;TODAY();"md")&" zile."
Daca in B2 se introduce CNP-ul, nu avem decat sa extragem din CNP data nasterii cu prima formula, deci unde este referinta directa la B2 inlocuim cu formula care extrage data din CNP:
="Vârsta este "&DATEDIF(DATE(MID(B2;2;2);MID(B2;4;2);MID(B2;6;2));TODAY();"y")&" ani, "&DATEDIF(DATE(MID(B2;2;2);MID(B2;4;2);MID(B2;6;2));TODAY();"ym")&" luni şi "&DATEDIF(DATE(MID(B2;2;2);MID(B2;4;2);MID(B2;6;2));TODAY();"md")&" zile."
L.E:
Scuze, formula de mai sus nu tine cont de prima cifra ( :oops: ):
1/2 - cetateni romani nascuti intre 1 ian 1900 si 31 dec 1999
3/4 - cetateni romani nascuti intre 1 ian 1800 si 31 dec 1899
5/6 - cetateni romani nascuti intre 1 ian 2000 si 31 dec 2099
7/8 - rezidenti
Persoanele de cetatenie straina se identifica cu cifra "9"
deci, data nasterii va fi:
=CHOOSE(IF(--MID(B2;1;1)<3;1;2);DATE(19&MID(B2;2;2);MID(B2;4;2);MID(B2;6;2));DATE(20&MID(B2;2;2);MID(B2;4;2);MID(B2;6;2)))
Iar formula finala va fi:
="Vârsta este "&DATEDIF(CHOOSE(IF(--MID(B2;1;1)<3;1;2);DATE(19&MID(B2;2;2);MID(B2;4;2);MID(B2;6;2));DATE(20&MID(B2;2;2);MID(B2;4;2);MID(B2;6;2)));TODAY();"y")&" ani, "&DATEDIF(CHOOSE(IF(--MID(B2;1;1)<3;1;2);DATE(19&MID(B2;2;2);MID(B2;4;2);MID(B2;6;2));DATE(20&MID(B2;2;2);MID(B2;4;2);MID(B2;6;2)));TODAY();"ym")&" luni şi "&DATEDIF(CHOOSE(IF(--MID(B2;1;1)<3;1;2);DATE(19&MID(B2;2;2);MID(B2;4;2);MID(B2;6;2));DATE(20&MID(B2;2;2);MID(B2;4;2);MID(B2;6;2)));TODAY();"md")&" zile."
CNP-ul care incepe cu 3 sau 4, nu poate fi transformat in format data decat cu VBA.
Iar daca se doreste o mai mare personalizare, in loc de:
"Vârsta este "
se poate folosi:
"Vârsta "&IF(ISEVEN(--MID(B2;1;1));"doamnei";"domnului")&" este "
Probleme să fie, că soluţii se găsesc...

Închis

Înapoi la “Intrebari despre Excel 2007”