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 valida 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
Descarca gratuit acest fisier (impreuna cu multe altele) accesand pachetul Fisiere onLearn. Le-am grupat pe toate intr-un singur loc sa fie mai usor de accesat. Vezi butonul de mai jos.
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.
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.