PESEL
Numer PESEL, czyli Powszechny Elektroniczny System Ewidencji Ludności, został wprowadzony w 1979 roku i zawiera kilka informacji:
- cyfry 1-2 – ostatnie dwie cyfry roku urodzenia
- cyfry 3-4 – miesiąc urodzenia
- cyfry 5-6 – dzień urodzenia
- cyfry 7-10 – liczba porządkowa z oznaczeniem płci (parzystaL kobieta, nieparzysta: mężczyzna)
- cyfra 11 – suma kontrolna
Ten system nie pozwala odróżnić osób urodzonych w roku 1985 od tych urodzonych w 1885, czy tych z 2010 od tych z 1910. Dlatego do cyfr oznaczających miesiące dodaje się odpowiednio:
- 1800-1899: 80
- 1900-1999: 0
- 2000-2099: 20
- 2100-2199: 40
- 2200-2299: 60
Osoba z 6 Maja 1910 będzie więc miała PESEL zaczynający się od 100506, a osoba z 6 Maja 2010 będzie miała 102506.
Suma kontrolna
Aby otrzymać sumę kontrolną należy pomnożyć każdą cyfrę PESEL przed odpowiednią wagę. Są to odpowiednio: 1 3 7 9 1 3 7 9 1 3. Następnie dodać do siebie otrzymane iloczyny i podzielić przez modulo 10. Otrzymany wynik odejmujemy od 10 i ponownie dzielimy przez modulo 10.
[box title=”Modulo”]167 Mod 10 = 7. Modulo, to nic innego jak reszta z dzielenia 167 przez 10.[/box]
Przykład: osoba urodzona 6 Sierpnia 1987 roku o liczbie porządkowej 1324 pa PESEL 8708061324. Wyliczenie sumy kontrolnej:
- 8*1 + 7*3 + 0*7 + 8*9 + 0*1 + 6*3 + 1*7 + 3*9 + 2*1 + 4*3 = 167
- wynik dzielimy przez modulo 10: 7
- odejmujemy od 10: 10-7=3
- dzielimy przez modulo 10: 3
Pełny PESEL: 87080613243.
Weryfikacja PESEL
Aby zweryfikować PESEL należy wykonać te same obliczenia i porównać otrzymany wynik z sumą kontrolną – jeśli się zgodzą, to PESEL jest poprawny. Nasz PESEL wpisujemy w komórkę B2 arkusza, a formułę sprawdzającą gdziekolwiek. Poniżej wersje dla polskiej i angielskiej wersji Excela:
Po niewielkiej przeróbce możemy napisać formułę, która wygeneruje prawidłowy PESEL, gdy np. potrzebujemy wielu PESELi do testu systemu CRM lub innego.
Możemy też weryfikować PESEL przy użyciu VBA:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
Sub pesel() Dim Message, Title, pesel, control, control_sum Message = "Wprowadz PESEL:" Title = "Weryfikacja numeru PESEL" pesel = InputBox(Message, Title) control = Right(pesel, 1) pesel1 = Mid(pesel, 1, 1) * 1 pesel2 = Mid(pesel, 2, 1) * 3 pesel3 = Mid(pesel, 3, 1) * 7 pesel4 = Mid(pesel, 4, 1) * 9 pesel5 = Mid(pesel, 5, 1) * 1 pesel6 = Mid(pesel, 6, 1) * 3 pesel7 = Mid(pesel, 7, 1) * 7 pesel8 = Mid(pesel, 8, 1) * 9 pesel9 = Mid(pesel, 9, 1) * 1 pesel10 = Mid(pesel, 10, 1) * 3 control_sum = (10 - ((pesel1 + pesel2 + pesel3 + pesel4 + pesel5 _ + pesel6 + pesel7 + pesel8 + pesel9 + pesel10) Mod 10)) Mod 10 Range("E1").Value = control Range("E2").Value = control_sum Range("E3").Value = control - control_sum If control - control_sum = 0 Then MsgBox "PESEL poprawny!", vbInformation + vbOKOnly, Title Else MsgBox "PESEL niepoprawny!", vbExclamation + vbOKOnly, Title End If End Sub |
słowa kluczowe: excel po angielsku, jak sprawdzić poprawność pesel, sprawdzanie pesel, skoroszyt makr osobistych, sprawdzanie poprawności pesel, excel angielskie nazwy funkcji, excel pesel, poprawny pesel, pesel cyfra kontrolna