Rik van Dorst
Gebruiker
- Lid geworden
- 19 sep 2008
- Berichten
- 5
Voor onze leden hebben wij een aansluitingsnummer inclusief controlegetal ingevoerd. De bedoeling van het controlegetal is dat een verkeerde invoer van het nummer voorkomen wordt. Voor het aansluitingsnummer zijn 9 posities gereserveerd en ziet er bijvoorbeeld als volgt uit: 0 9 8 7 6 5 4 3 8
Het aansluitingsnummer is als volgt samengesteld: als a0, a1,..a8 ;
a0 - a1: de regiocode, mogelijke waarden : 00 t/m 14 en 25;
a2 - a7: het nummer ;
a8 : het controlegetal volgens de berekening:
(3 x a0)+(7 x a1)+(1 x a2)+(3 x a3)+(7 x a4)+(1 x a5)+(3 x a6)+(7 x a7). Deel de uitkomst door 10.
Wanneer de rest van deze deling 0 is, moet het controlegetal 0 zijn. Wanneer de rest van deze deling ongelijk aan 0 is, moet het controlegetal gelijk zijn aan 10 minus de rest van de deling.
Voorbeeld:
Aansluitingsnummer is 098765438
(3 x 0) + (7 x 9) + (1 x 8) + (3 x 7) + (7 x 6) + (1 x 5) + (3 x 4) + (7 x 3) = 172 : 10 = 17
Rest = 2. Controlegetal is 10 – 2 = 8
Nu wordt er in Excel het aansluitingsnummer handmatig ingevoerd waarop een controle losgelaten moet worden. Een collega van mij heeft de volgende formule gemaakt:
=ALS(ISLEEG(A2);"";ALS(LENGTE(A2)=9;ALS(RECHTS((10-RECHTS((DEEL(A2;1;1)*3+DEEL(A2;2;1)*7+DEEL(A2;3;1)*1+DEEL(A2;4;1)*3+DEEL(A2;5;1)*7+DEEL(A2;6;1)*1+DEEL(A2;7;1)*3+DEEL(A2;8;1)*7);1));1)=DEEL(A2;9;1);"JUIST";"ONJUIST");ALS(LENGTE(A2)=8;ALS(RECHTS((10-RECHTS((DEEL(A2;1;1)*7+DEEL(A2;2;1)*1+DEEL(A2;3;1)*3+DEEL(A2;4;1)*7+DEEL(A2;5;1)*1+DEEL(A2;6;1)*3+DEEL(A2;7;1)*7);1));1)=DEEL(A2;8;1);"JUIST";"ONJUIST");ALS(LENGTE(A2)=7;ALS(RECHTS((10-RECHTS((DEEL(A2;1;1)*1+DEEL(A2;2;1)*3+DEEL(A2;3;1)*7+DEEL(A2;4;1)*1+DEEL(A2;5;1)*3+DEEL(A2;6;1)*7);1));1)=DEEL(A2;7;1);"JUIST";"ONJUIST");"ONJUIST"))))
Mijn vraag is kan bovenstaande formule korter gemaakt worden? Voor de zekerheid heb ik een voorbeeld toegevoegd van de controleberekening.
Het aansluitingsnummer is als volgt samengesteld: als a0, a1,..a8 ;
a0 - a1: de regiocode, mogelijke waarden : 00 t/m 14 en 25;
a2 - a7: het nummer ;
a8 : het controlegetal volgens de berekening:
(3 x a0)+(7 x a1)+(1 x a2)+(3 x a3)+(7 x a4)+(1 x a5)+(3 x a6)+(7 x a7). Deel de uitkomst door 10.
Wanneer de rest van deze deling 0 is, moet het controlegetal 0 zijn. Wanneer de rest van deze deling ongelijk aan 0 is, moet het controlegetal gelijk zijn aan 10 minus de rest van de deling.
Voorbeeld:
Aansluitingsnummer is 098765438
(3 x 0) + (7 x 9) + (1 x 8) + (3 x 7) + (7 x 6) + (1 x 5) + (3 x 4) + (7 x 3) = 172 : 10 = 17
Rest = 2. Controlegetal is 10 – 2 = 8
Nu wordt er in Excel het aansluitingsnummer handmatig ingevoerd waarop een controle losgelaten moet worden. Een collega van mij heeft de volgende formule gemaakt:
=ALS(ISLEEG(A2);"";ALS(LENGTE(A2)=9;ALS(RECHTS((10-RECHTS((DEEL(A2;1;1)*3+DEEL(A2;2;1)*7+DEEL(A2;3;1)*1+DEEL(A2;4;1)*3+DEEL(A2;5;1)*7+DEEL(A2;6;1)*1+DEEL(A2;7;1)*3+DEEL(A2;8;1)*7);1));1)=DEEL(A2;9;1);"JUIST";"ONJUIST");ALS(LENGTE(A2)=8;ALS(RECHTS((10-RECHTS((DEEL(A2;1;1)*7+DEEL(A2;2;1)*1+DEEL(A2;3;1)*3+DEEL(A2;4;1)*7+DEEL(A2;5;1)*1+DEEL(A2;6;1)*3+DEEL(A2;7;1)*7);1));1)=DEEL(A2;8;1);"JUIST";"ONJUIST");ALS(LENGTE(A2)=7;ALS(RECHTS((10-RECHTS((DEEL(A2;1;1)*1+DEEL(A2;2;1)*3+DEEL(A2;3;1)*7+DEEL(A2;4;1)*1+DEEL(A2;5;1)*3+DEEL(A2;6;1)*7);1));1)=DEEL(A2;7;1);"JUIST";"ONJUIST");"ONJUIST"))))
Mijn vraag is kan bovenstaande formule korter gemaakt worden? Voor de zekerheid heb ik een voorbeeld toegevoegd van de controleberekening.
Bijlagen
Laatst bewerkt: