Ověření platného IČ v Excelu
Potřeboval jsem prověřit, zda seznam firem který mám, obsahuje platná česká IČ. Věděl jsem, že je na to nějaký kontrolní součet, hodím dotaz do Google a hned asi třetí odkaz byl téměř to co jsem potřeboval. Na stránce https://phpfashion.com/jak-overit-platne-ic-a-rodne-cislo byl algoritmus popsaný.
Věřím, že se neztratí tak jako odkazy na webu MVCR, na které je tam odkazováno, přesto raději ocituji jak je ičo tvořené a jak se kontroluje.
Jak se ověřuje IČO
Takže, jak se ověřuje IČ? Například 69663963
- první až sedmou číslici vynásobíme čísly 8, 7, 6, 5, 4, 3, 2 a součiny sečteme:
soucet = 6*8 + 9*7 + 6*6 + 6*5 + 3*4 + 9*3 + 6*2 = 228
- spočítáme zbytek po dělení jedenácti:
zbytek = soucet % 11
- pro poslední osmou číslici
c
musí platit:
– je-li zbytek 0, pak c = 1
– je-li zbytek 1, pak c = 0
– v ostatních případech je c = 11 - zbytek
Vcelku jednoduché, php jsem nepotřeboval, tak tedy vytvořit vzoreček do excelu ve kterém mám data. Pochopitelně, pokud máte ičo v jiné buňce než E2 a dalších, toto si jednoduše Ctrl+H upravíte.
KDYŽ(DÉLKA(E2)=8;(KDYŽ(A(MOD(((HODNOTA(ČÁST(E2;1;1))*8)+(HODNOTA(ČÁST(E2;2;1))*7)+(HODNOTA(ČÁST(E2;3;1))*6)+(HODNOTA(ČÁST(E2;4;1))*5)+(HODNOTA(ČÁST(E2;5;1))*4)+(HODNOTA(ČÁST(E2;6;1))*3)+(HODNOTA(ČÁST(E2;7;1))*2));11)=1;HODNOTA(VPRAVO(E2;1))=0);“platné CZ ičo“;KDYŽ(A(MOD(((HODNOTA(ČÁST(E2;1;1))*8)+(HODNOTA(ČÁST(E2;2;1))*7)+(HODNOTA(ČÁST(E2;3;1))*6)+(HODNOTA(ČÁST(E2;4;1))*5)+(HODNOTA(ČÁST(E2;5;1))*4)+(HODNOTA(ČÁST(E2;6;1))*3)+(HODNOTA(ČÁST(E2;7;1))*2));11)=0;HODNOTA(VPRAVO(E2;1))=1);“platné CZ ičo“;KDYŽ((HODNOTA(ČÁST(E2;8;1)))=(11-MOD(((HODNOTA(ČÁST(E2;1;1))*8)+(HODNOTA(ČÁST(E2;2;1))*7)+(HODNOTA(ČÁST(E2;3;1))*6)+(HODNOTA(ČÁST(E2;4;1))*5)+(HODNOTA(ČÁST(E2;5;1))*4)+(HODNOTA(ČÁST(E2;6;1))*3)+(HODNOTA(ČÁST(E2;7;1))*2));11));“platné CZ ičo“;“neplatné CZ ičo“))));“špatná délka“)
Je tam na začátku vůbec kontrola zda je řetězec dlouhý 8 znaků. Asi by šlo i přidat, zejména na mezery se hodí, uživatelé někdy vloží mezeru před nebo za číslo a zvláště ta za číslem je prakticky neviditelná, kontrolu zda obsahuje mezeru.
Na praktických datech jsem zjistil, že funguje i na kontrolu slovenských IČ. Bude to asi dáno tím, že na počátku se čísla tvořila podle stejného algoritmu a oni v něm pokračují. Ovšem ruku do ohně za to nelze dát.
Po drobné úpravě a s doplněním o kontrolu rodného čísla by se vzorec dal použít i na kontrolu DIČ. Pravda, pokud máte obě čísla, v ČR je to jednoduché pro právnické osoby, stačí odebrat CZ a porovnat shodu, pro fyzické osoby přidat vzoreček na kontrolu rodného čísla.
Na Slovensku
Na Slovensku je situace složitější, potřebujete znát ještě formu subjektu a DIČ je u nich jen jako u nás pro účely platby daní, za účelem DPH mají IČ DPH. U nás je to vlastně matoucí, DIČ muíte ověřit v nějakém registru pokud chcete vědět, zda je firma plátcem DPH. Na Slovensku k tomuto slouží právě IČ DPH. Pokud i u SK firmy vyžádáte DIČ, s velkou pravděpodobností dostanete jen 10 čísel registrace k dani z příjmu a tím, že si k němu přidáte SK, vůbec nemusí znamenat, že je firma plátcem DPH.