In urma cu mai multe zile am primit urmatorul comentariu la unul dintre articolele scrise pe aici:
Ai putea sa ne ajuti si cu o verificare a cnp-ului in excel? video daca se poate
Chiar ma bucur cand imi dati idei de articole noi. Nu am pregatit nimic video pentru ca nu era cazul, va dau o unealta pe care puteti sa o folositi direct, nu prea are sens sa va supar cu vocea mea ragusita 🙂 .
Cum putem verifica un CNP?
E important sa intelegem structura CNP-ului ca sa stim in functie de ce vom verifica:
SAALLZZJJNNNC
- S – valori de la 1 la 9, daca stiai ca si mine ca avem doar 1 sau 2, poti citi mai multe aici
- AA – Anul nasterii: ultimele 2 cifre din anul nasterii, daca esti din 1987 ca si mine atunci vorbim de 87
- LL – Luna nasterii: de la 1 la 12 numarul corespunzator lunii nasterii, daca esti din Febriarie atunci la tine e 02
- ZZ – Ziua nasterii: nu cred ca e nevoie sa explic aici
- JJ – Codul judetului: un numar de la 0 la 52 care reprezinta codul judetului
- NNN – Combinatie de 3 cifre, un numar din acest interval este alocat unei singure persoane intr-o anumita zi
- C – Cifra de control: aici vine partea putin mai complicata, primele 12 cifre din cnp se inmultesc cu cifrele din acest numar, 279146358279 si se face o suma, in acest fel: S*2+A*7+A*9+… sper ca ati prins ideea
Solutia mea
Ca sa pot face verificarea CNP-ului pentru mine a fost clar ca nu pot face asta intr-o singura formula pentru ca nu o sa mai inteleg nimic. Asa ca am extras fiecare element din CNP folosind functia MID, am facut validarea pe fiecare element in parte:
- S – Sex: Valid doar pentru 1 si 2
- AA – poate sa fie oricare
- LL – numere de la 1 la 12
- ZZ – in functie de luna numarul de zile din acea luna, de la 1 la 31 in Decembrie, de la 1 la 30 in Noiembrie
- JJ – Numar de la 1 la 52
- NNN – oricare
- C – verificare conform algoritmului descris mai sus
Ce am folosit
Hai sa vedem ce functii am folosit pentru validare CNP:
- LEFT (): ca sa extrag prima cifra
- MID (): ca sa extrag restul cifrelor
- LEN (): ca sa verific lungimea CNP-ului
- IFERROR (): ca sa elimin #N/A cand nu avem valori introduse
- VLOOKUP (): ca sa aduc numarul de zile dintr-o luna dintr-un ant tabel
- IF: ca sa iti spun daca sunt probleme sau nu
- AND: ca sa iti dau un verdict final, daca CNP-ul e bun
Rezultatul
O imagine face cat o mie de cuvinte:
Download
Incearca formularul de mai jos, vezi daca merge.
Buna ziua, legat de cifra sexului (M/F).
Exista cifra 1 sau 2 ptr cei născuți între 1 ianuarie 1900 și 31 decembrie 1999;
3 sau 4 ptr cei născuți între 1 ianuarie 1800 și 31 decembrie 1899;
5 sau 6 ptr născuți între 1 ianuarie 2000 și 31 decembrie 2099; 7 sau 8 – pentru personale străine rezidente în România si 9 – pentru persoanele străine
Aflu si eu lucruri noi 🙂 o sa fac o actualizare
Am actualizat documentul, multumesc pentru observatie
Pingback: Formule: IF | Excel Ninja
Validare CNP, folosind „Regular Expressions” 🙂 :
http://www.itlearning.ro/forum/viewtopic.php?f=119&t=7100&p=48572#p48572
Pt cultura generala: exista CNP-uri care nu trec de algoritmul de verificare.
Pingback: Modele in Excel - de ce ai nevoie? | excelninja.ro
Comentariile sunt închise.