Weryfikacja PESEL

0
188
Rate this post

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:

Polska wresja
Angielska wresja

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