Mvh Mogens
Luhn algoritme; Mod10. Er det virkeligt umuligt?
Moderator: Lodahl
Luhn algoritme; Mod10. Er det virkeligt umuligt?
Jeg har søgt højt og lavt, men .... Er der virkeligt ikke en standardløsning, for at beregne Mod10 (eller Mod11) på en celle i calc. Det er næsten for fladpandet.
!!!
Mvh Mogens
Mvh Mogens
Hvis det drejer sig om at finde kontrolcifferet til et max 14-cifret værdi (bruges som ref. nr. på girokort), kan du bruge følgende formel:
10-REST(SUMPRODUKT(REST(VÆRDI(MIDT(TEKST(A1;"00000000000000");{1|2|3|4|5|6|7|8|9|10|11|12|13|14};1))*{1|2|1|2|1|2|1|2|1|2|1|2|1|2};9));10)
Der findes forskellige metoder, alt efter det drejer sig om cpr, cvr o.a. og ingen af dem jeg kender anvender standard Luhn, men det kan da laves.
Se http://dl.dropbox.com/u/2601866/Kuhn.ods
mvh
Jens
10-REST(SUMPRODUKT(REST(VÆRDI(MIDT(TEKST(A1;"00000000000000");{1|2|3|4|5|6|7|8|9|10|11|12|13|14};1))*{1|2|1|2|1|2|1|2|1|2|1|2|1|2};9));10)
Der findes forskellige metoder, alt efter det drejer sig om cpr, cvr o.a. og ingen af dem jeg kender anvender standard Luhn, men det kan da laves.
Se http://dl.dropbox.com/u/2601866/Kuhn.ods
mvh
Jens
Tak Jens
Det er da vist ikke første gang du leger med det her. Det her overgår min talentmasse.... meeeeen, der er en udfordring når tallet "9" indgår i opgaven; ved 9: fås 10(0) men skal være 1; 19-9 [0].. ved 59-5 [6], 123459678-8 [9], 123495678-4 [5], hvorimod 12345678-2 er OK!
Det ser ud til at et 9-tal på alle pladser generer beregningen. Det kunne tyde på en tidlig (mellemregnings-) fejl, da min udgave hedder 3.0.1 OOO300m15(build9379). Har du mulighed for at checke det?
Men jeg bøjer mig i støvet; du er ret go'
Mvh Mogens
Det er da vist ikke første gang du leger med det her. Det her overgår min talentmasse.... meeeeen, der er en udfordring når tallet "9" indgår i opgaven; ved 9: fås 10(0) men skal være 1; 19-9 [0].. ved 59-5 [6], 123459678-8 [9], 123495678-4 [5], hvorimod 12345678-2 er OK!
Det ser ud til at et 9-tal på alle pladser generer beregningen. Det kunne tyde på en tidlig (mellemregnings-) fejl, da min udgave hedder 3.0.1 OOO300m15(build9379). Har du mulighed for at checke det?
Men jeg bøjer mig i støvet; du er ret go'
Mvh Mogens
Heureka... vistnok.
Kunne se ud som om denne lille justering gør tricket!!!
Problemet er at når produktet er deleligt med 9 er resten 0, og den skal "Luhn"-mæssigt være 9.
=10-REST(SUMPRODUKT(RUND.OP(REST(VÆRDI(MIDT(TEKST(A1;"00000000000000");{1|2|3|4|5|6|7|8|9|10|11|12|13|14};1))*{1|2|1|2|1|2|1|2|1|2|1|2|1|2};9,01)));10)
Men tak for oplægget.
Kunne se ud som om denne lille justering gør tricket!!!
Problemet er at når produktet er deleligt med 9 er resten 0, og den skal "Luhn"-mæssigt være 9.
=10-REST(SUMPRODUKT(RUND.OP(REST(VÆRDI(MIDT(TEKST(A1;"00000000000000");{1|2|3|4|5|6|7|8|9|10|11|12|13|14};1))*{1|2|1|2|1|2|1|2|1|2|1|2|1|2};9,01)));10)
Men tak for oplægget.