MS Excel / Технически · октомври 27, 2016

Формула за валидиране на ЕГН / ЕИК

Формула за валидиране на ЕГН/ЕИК

Когато се налага да се въвеждат ръчно голям брой ЕГН-та или ЕИК-та има голяма вероятност да се допусне меганична грешка.

Тук идва на помощ последната цифра на единния граждански номер, която е контролна. Това ще рече, че се изчислява по определен алгоритъм от останалите цифри.

Последната цифра се получава, като всички останали се умножат по съответни коефициенти. След това получените резултати се събират. Получения сбор се дели на 11, като остатъкът при делението съответства на последната цифра. В случай, че остатъка е равен на 10, то контролната цифра е 0.

Таблица с Коефициентите:

Позиция 1 2 3 4 5 6 7 8 9
Коефициент 2 4 8 5 10 9 7 3 6

 

За ЕИК също има подобен алгоритъм.

Това е формула за Excel, която проверява дали въведените цифри са валидно ЕГН, валидно ЕИК или нито едното от изброените:

=IF(LEN(A1)>0;IF(ISNUMBER(INT(A1));IF(IFERROR(AND(CHOOSE(MOD(MID(INT(A1);1;1)*1+MID(INT(A1);2;1)*2+MID(INT(A1);3;1)*3+MID(INT(A1);4;1)*4+MID(INT(A1);5;1)*5+MID(INT(A1);6;1)*6+MID(INT(A1);7;1)*7+MID(INT(A1);8;1)*8;11)+1;MID(INT(A1);9;1)="0";MID(INT(A1);9;1)="1";MID(INT(A1);9;1)="2";MID(INT(A1);9;1)="3";MID(INT(A1);9;1)="4";MID(INT(A1);9;1)="5";MID(INT(A1);9;1)="6";MID(INT(A1);9;1)="7";MID(INT(A1);9;1)="8";MID(INT(A1);9;1)="9";CHOOSE(MOD(MID(INT(A1);1;1)*3+MID(INT(A1);2;1)*4+MID(INT(A1);3;1)*5+MID(INT(A1);4;1)*6+MID(INT(A1);5;1)*7+MID(INT(A1);6;1)*8+MID(INT(A1);7;1)*9+MID(INT(A1);8;1)*10;11)+1;MID(INT(A1);9;1)="0";MID(INT(A1);9;1)="1";MID(INT(A1);9;1)="2";MID(INT(A1);9;1)="3";MID(INT(A1);9;1)="4";MID(INT(A1);9;1)="5";MID(INT(A1);9;1)="6";MID(INT(A1);9;1)="7";MID(INT(A1);9;1)="8";MID(INT(A1);9;1)="9";MID(INT(A1);9;1)="0"));OR((LEN(INT(A1))=9); AND((LEN(INT(A1))=13);(CHOOSE(MOD(MID(INT(A1)&"0000";9;1)*2+MID(INT(A1)&"0000";10;1)*7+MID(INT(A1)&"0000";11;1)*3+MID(INT(A1)&"0000";12;1)*5;11)+1;MID(INT(A1)&"0000";13;1)="0";MID(INT(A1);13;1)="1";MID(INT(A1);13;1)="2";MID(INT(A1);13;1)="3";MID(INT(A1);13;1)="4";MID(INT(A1);13;1)="5";MID(INT(A1);13;1)="6";MID(INT(A1);13;1)="7";MID(INT(A1);13;1)="8";MID(INT(A1);13;1)="9";TRUE;TRUE;TRUE;FALSE;TRUE)))));FALSE);"ЕИК";IF(LEN(A1)=10;IF(IF(MOD(SUMPRODUCT(VALUE(MID(A1;ROW(INDIRECT("1:9"));1))*({2;4;8;5;10;9;7;3;6}));11)=10;0;MOD(SUMPRODUCT(VALUE(MID(A1;ROW(INDIRECT("1:9"));1))*({2;4;8;5;10;9;7;3;6}));11))=INT(RIGHT(A1;1));"ЕГН";"Невалидно ЕГН");IF(LEN(A1)=4;A1;"Невалидно")));"Има символ");"")