Intrebare: cum pot sa extrag dintr-un CNP data nasterii, varsta si sexul folosind Excel? Daca se poate as prefera sa nu le scriu manual in tabelele la care lucrez.
Foarte buna intrebarea, luam ca si exemplu tabelul urmator:
Coloanele varsta, data nasterii si sex am vrea sa se calculeze automat in functie de CNP.
Structura informatiilor din CNP
Probabil ca majoritatea stiti ca fiecare CNP are urmatoarea structura:
SAALLZZXXXXXX
- S – Sex (1 Masculin, 2 Feminin)
- AA – Anul nasterii din 2 cifre
- LL – Luna nasterii din 2 cifre
- ZZ – Ziua nasterii din 2 cifre
- X – alte cifre care nu ne intereseaza in momentul de fata
Rezolvarea problemei
Un lucru important la orice lucru pe care vrem sa il facem in Excel e sa ne gandim intai cum mai exact vom rezolva problema inainte sa incepem sa scriem formule:
- Ca sa gasim sexul: extragem primul caracter din CNP, daca este 1 afisam M, daca este 2 afisam F
- Ca sa gasim data nasterii: extragem urmatoarele 6 caractere din CNP si le punem intr-un camp de tip data
- Ca sa gasim varsta: varsta e de fapt diferenta dintre data de azi si data nasterii
Asta inseamna ca probabil vom avea nevoie de cateva formule care sa ne permita sa:
- Extragem unul sau mai multe caractere din coloana CNP (LEFT, MID)
- Afisam M sau F in functie de valoarea 1 sau 2 (IF)
- Stim data de astazi (TODAY)
- Sa transformam 3 numere intr-o data (DATE)
- Scadem 2 date pentru a vedea varsta (DATEDIF)
Formule
Vorbind si mai concret, mai jos aveti formulele pe care le-am folosit, A2 reprezinta prima inregistrare din coloana CNP.
Ca sa gasim sexul:
=IF(ISEVEN(LEFT([@CNP];1)*1);”F”;”M”)
Ca sa gasim data nasterii:
=DATE(IF(LEFT([@CNP];1)*1<=2;MID([@CNP];2;2);MID([@CNP];2;2)+100);MID([@CNP];4;2);MID([@CNP];6;2))
Ca sa gasim varsta:
=(TODAY()-[@[Data nasterii]])/365
Vrei sa inveti Excel?
Daca nu vrei sa ramai in ceata, si vrei sa inveti Excel, poti incepe cu acest curs pentru incepatori. Ca sa nu mai fie nevoie sa cauti pe Google despre cum sa extragi data nasterii din CNP. 🙂
Descarca exemplu
Cu un click aici poti descarca fisierul excel pe care l-am folosit ca si exemplu.
CNP-uri de dupa 2000
Radu, asta merge si pentru CNP-uri de dupa 2000?
Da, am fost oare prea scurt? 🙂
Radu este fondatorul onLearn si autorul majoritatii articolelor de pe acest site. Cand nu scrie sau nu inregistreaza vreun tutorial e in sala de curs sau lucreaza pe proiecte de consultanta ca sa invete lucruri noi.
Ai o intrebare?
Daca ai ajuns pana aici cautand sectiunea de comentarii, sa stii ca aceasta nu exista :). Poti insa ca sa ne pui intrebari in partea de forum a site-ului, te asteptam acolo.
Radu care e logica acelui 100? La restu m am prins
Nu știu dacă ma crezi, dar nu mai țin minte 😀 te-ai uitat și la video? Posibil răspunsul sa fie acolo.
=CONCATENATE(MID([@CNP],6,2),”.”,MID([@CNP],4,2),”.”;IF(MID([@CNP],2,2)<"22","20","19"), MID([@CNP],2,2))
Daca pui formula pentru 1928 in cnp…nu mai functioneaza!
Am testat chiar acum, daca descarci fisierul, ar trebui sa functioneze.
Comentariile sunt închise.