Extragerea datei de nastere din cadrul CNP (Codul Numeric Personal)

Pantru extragerea datei de nastere din CNP vom avea in vedere

formatul CNP: S.AA.LL.ZZ.JJ.NNN.C

Unde AA este cifra 2 si 3 reprezentand ultimele doua cifre ale anului nasterii, LL – luna nasterii, ZZ – ziua nasterii si JJ – codul judetului

S

S reprezintă sexul și secolul în care s-a născut persoana care posedă acel C.N.P. Persoanelor de sex masculin le sunt atribuite numerele impare iar persoanelor de sex feminin, numerele pare.

Prima cifră a C.N.P.-ului este: (sex bărbătesc / sex femeiesc)

  • 1 / 2 – născuți între 1 ianuarie 1900 și 31 decembrie 1999
  • 3 / 4 – născuți între 1 ianuarie 1800 și 31 decembrie 1899
  • 5 / 6 – născuți între 1 ianuarie 2000 și 31 decembrie 2099
  • 7 / 8 – pentru persoanele străine rezidente în România.

AA

AA este un număr format din 2 cifre și reprezintă ultimele 2 cifre din anul nașterii. O persoană născută în anul 1970 va avea la AA 70. (SAA = 170, pentru o persoană de sex masculin)

Dacă o persoană va avea prima cifră cu una din valorile 7, 8 (rezidenți), atunci se va considera secolul 20. Ex. SAA = 771, anul nașterii va fi 1971.

LL

LL este un număr format din 2 cifre și reprezintă luna nașterii persoanei.

ianuarie februarie martie aprilie mai iunie iulie august septembrie octombrie noiembrie decembrie
01 02 03 04 05 06 07 08 09 10 11 12

ZZ

ZZ reprezintă ziua nașterii în format de 2 cifre. Pentru zilele de la 1 la 9 se adaugă 0 înaintea datei. Spre exemplificare, o persoană născută în prima zi a lunii va avea codul 01.

JJ

județului sau sectorului (în cazul municipiului București) în care s-a născut persoana ori în care avea domiciliul sau reședința în momentul acordării C.N.P.-ului.

De exemplu, pentru Buzău acest număr este 10. Pentru București, codul este un număr din intervalul 41 și 46 și reprezintă sectorul în care s-a născut acea persoană.

Codurile județelor sunt în ordinea alfabetică a acestora, cu unele excepții.

Cod Județ
01 Alba
02 Arad
03 Argeș
04 Bacău
05 Bihor
06 Bistrița-Năsăud
07 Botoșani
08 Brașov
09 Brăila
10 Buzău
11 Caraș-Severin
12 Cluj
13 Constanța
14 Covasna
15 Dâmbovița
16 Dolj
17 Galați
18 Gorj
19 Harghita
20 Hunedoara
21 Ialomița
22 Iași
23 Ilfov
24 Maramureș
25 Mehedinți
26 Mureș
27 Neamț
28 Olt
29 Prahova
30 Satu Mare
31 Sălaj
32 Sibiu
33 Suceava
34 Teleorman
35 Timiș
36 Tulcea
37 Vaslui
38 Vâlcea
39 Vrancea
40 București
41 București S.1
42 București S.2
43 București S.3
44 București S.4
45 București S.5
46 București S.6
51 Călărași
52 Giurgiu

NNN

NNN este un număr format din 3 cifre din intervalul 001 – 999. Numerele din acest interval se împart pe județe, birourilor de Evidență a Populației, astfel încât un anumit număr din acel interval să fie alocat unei singure persoane într-o anumită zi.

C

C este cifră de control (un cod autodetector) aflată în relație cu toate celelate 12 cifre ale C.N.P.-ului. Cifra de control este calculată după cum urmează: fiecare cifră din C.N.P. este înmulțită cu cifra de pe aceeași poziție din numărul 279146358279; rezultatele sunt însumate, iar rezultatul final este împărțit cu rest la 11. Dacă restul este 10, atunci cifra de control este 1, altfel cifra de control este egală cu restul.

Vom utiliza pentru rezolvarea problemei functiile:

MID – pentru extragere de subsiruri

IF – pentru calcularea anului nasterii

Pentru a fi expliciti in rezolvarea acestei probleme vom explica pas cu pas formulele utilizate.

Pentru coloana CNP tipul de date pe care il vom alege va fi de tip text.

La coloana validare lungime CNP vom verifica daca lungimea CNP-ului este 13 cu formula: =IF(LEN(A4)=13,”lungime corecta”,”incorect”). Unde A4 este celula corespunzatoare CNP-ului.

Formula de mai sus verifica daca lungimea sirului este de 13 caractere (IF(LEN(A4)=13). Daca este adevarat va afisa sirul de caractere lungime corecta iar daca nu este asa se va afisa incorect.

Pentru coloana Ziua nasterii formula utilizata va fi: =VALUE(MID($A4,6,2)), Cu aceasta formula mai intai se extrag din CNP($A4) doua caractere incepand cu pozitia 6 cu ajutorul functiei MID($A4,6,2). Dupa extragere textul obtinut va fi transformat in valoarea numerica corespunzatoare utilizand functia VALUE.

In mod similar pentru Luna nasterii formula va fi: =VALUE(MID($A4,4,2)). Cu aceasta formula mai intai se extrag din CNP($A4) doua(2) caractere incepand cu pozitia 4 cu ajutorul functiei MID($A4,4,2). Dupa extragere textul obtinut va fi transformat in valoarea numerica corespunzatoare utilizand functia VALUE.

In mod similar pentru Anul nasterii formula va fi:

=IF(OR(LEFT($A4)=”1″, LEFT($A4)=”2″),1900+VALUE(MID($A4,2,2)),IF(OR(LEFT($A4)=”3″, LEFT($A4)=”4″),1800+VALUE(MID($A4,2,2)),IF(OR(LEFT(A4)=”5″, LEFT(A4)=”6″),2000+VALUE(MID($A4,2,2)),-1)))

Explicatia este urmatoarea: se verifica cu ajutorul functiei IF daca prima cifra a CNP(celula $A4) identificata cu ajutorul functiei LEFT($A4) este:

  • 1 sau 2 , cu ajutorul combinatiei OR(LEFT($A4)=”1″, LEFT($A4)=”2″),1900+VALUE(MID($A4,2,2)),valoaredacanu). Daca se constata ca este 1 sau 2, se calculeaza anul nasterii adaugand 1900 la valoarea obtinuta din CNP incepand cu pozitia 4 cu lungimea de doua caractere, identificata de functia VALUE(MID($A4,2,2)). Daca nu se iau in calcul alte variante.
  • dupa aceasi logica se verifica daca prima cifra a CNP este 3 sau 4, utilizand functiile urmatoare: IF(OR(LEFT($A4)=”3″, LEFT($A4)=”4″),1800+VALUE(MID($A4,2,2)), valoaredacanu). Daca se constata ca este 3 sau 4, se calculeaza anul nasterii adaugand 1800 la valoarea obtinuta din CNP incepand cu pozitia 4 cu lungimea de doua caractere, identificata de functia VALUE(MID($A4,2,2)). Daca nu se iau in calcul alte variante.
  • daca  CNP este 5 sau 6, utilizand functiile urmatoare:IF(OR(LEFT(A4)=”5″, LEFT(A4)=”6″),2000+VALUE(MID($A4,2,2)),-1). Daca se constata ca este 5 sau 6, se calculeaza anul nasterii adaugand la 2000 la valoarea obtinuta din CNP incepand cu pozitia 4 cu lungimea de doua caractere, identificata de functia VALUE(MID($A4,2,2)). Daca nu se intoarce valoarea -1.

Dupa ce s-au obtinut cele 3: ziua, luna si anul nasterii se compune data nasterii utilizand functia =DATE(G4,F4,E4) unde G4 este anul nasterii, F4 este luna nasterii iar E4 ziua nasterii. Se va obtine in felul acesta data nasterii in formatul inter de data al Microsoft Excel.