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.