Avatar billede hjaelpmobo Nybegynder
14. februar 2008 - 10:19 Der er 11 kommentarer

Check ciffer for container nummer

Jeg vil gerne oprette et ark hvor der ud fra hvert container prefix+registration no i en kollonne bliver dannet et check cifer til hver.

Container id betår af 4 bogstaver + 6 ciffer + check ciffer

f.eks: SUDU 307007-9
Der er en længere forklaring til hvordan check cifferet udregnes på: http://www.containerhandbuch.de/chb_e/stra/index.html?/chb_e/stra/stra_03_03_00.html

findes der i forvejen et excel-ark der kan beregne check cifferet, eller er der en der kan hjælpe med at få konstrueret et?

MVH

Morten
Avatar billede supertekst Ekspert
14. februar 2008 - 15:49 #1
Det ser faktisk ret spændende ud. Hvis jeg får tid kunne det måske være en udfordring. Vi kan jo se om nogen har en eksisterende løsning.
Avatar billede mrjh Novice
14. februar 2008 - 16:31 #2
Kender ikke nogen eksisterende løsning, men har prøvet at lave et lille eks. som jeg kan sende. Hvad er mailadressen ?
Avatar billede hjaelpmobo Nybegynder
14. februar 2008 - 16:59 #3
Super, min mail adresse er: mobomouse"at"hotmail.com

takker for det hurtige svar..Glæder mig til at prøve eksemplet :-)

MVH
morten
Avatar billede mrjh Novice
14. februar 2008 - 17:04 #4
Sendt
Avatar billede bak Forsker
14. februar 2008 - 19:42 #5
Her er et alternativ som også kan bruges direkte i regnearket

Function ContainerCheckCiffer(Containernr As String)
Dim ar1 As Variant
Dim ar2 As Variant
Dim cifre(1 To 10)
Dim x As Long, y As Long, sSum As Long

ar1 = Array("0", "1", "2", "3", "4", "5", "6", "7", "8", "9", _
    "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", _
    "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z")
ar2 = Array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 13, 14, 15, _
        16, 17, 18, 19, 20, 21, 23, 24, 25, 26, 27, 28, 29, _
        30, 31, 32, 34, 35, 36, 37, 38)

For x = 1 To 10
    For y = LBound(ar1) To UBound(ar1)
        If UCase(ar1(y)) = UCase(Mid(Containernr, x, 1)) Then
            cifre(x) = ar2(y)
            Exit For
        End If
        Next
Next
For x = 1 To 10
    cifre(x) = cifre(x) * (2 ^ (x - 1))
    sSum = sSum + cifre(x)
Next
ContainerCheckCiffer = sSum Mod 11

End Function
Avatar billede bak Forsker
14. februar 2008 - 21:10 #6
Avatar billede hjaelpmobo Nybegynder
15. februar 2008 - 13:16 #7
Takker til alle der er kommet med et bud.. Dem jeg har prøvet laver check ciffer til et container nr af gangen, men jeg skal bruger den funktion at den kan lave det på en hel kollonne med f.eks. 500 container numre.. Men jeg har heldigvis fundet en template til dette på jobbet.. Men takker igen mange gange for tiden der er brugt på det..
Avatar billede bak Forsker
15. februar 2008 - 14:15 #8
så hent lige mit regneark igen. det er lavet lidt om så det bedre passer til kolonner
Avatar billede hjaelpmobo Nybegynder
18. februar 2008 - 09:34 #9
Har tjekket og der er en fejl i arket.. Hvis jeg trækker en kontinuerlig række ned så vil flere melde fejl.. F.eks: MWSU900002    Alle kombinationer skal være muligt.

Men som før skrevet så har jeg fundet et ark der kan klare opgaven... Man takker mange gange for den fine indsats :-D

De bedste hilsner,

Morten
Avatar billede bak Forsker
18. februar 2008 - 10:05 #10
Det er sandelig ingen fejl. Ovennævnte nummer har er checkciffer på 10 og burde så ikke findes.
>>
The check digit 0 may occur twice, since it arises where the final difference is 0 and where it is 10. To ensure that this does not happen, the standard recommends that registration numbers should not be used which produce a final difference of 10


men det er godt at du selv har fundet noget der virker :-)
Avatar billede mrjh Novice
18. februar 2008 - 11:10 #11
Enig, godt du selv fandt noget. Det var en sjov opgave. Husk at lukke spørgsmålet.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Stort udvalg af Excel kurser til alle niveauer og jobfunktioner

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester