Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 8 odgovora
  • 5.266 pregleda

Najnovija ↓

Izračunavanje kontrolnog broja 06.02.2017. u 22:37 · pre 118 meseci #1
Broj od 11 brojki (bez kontrolne brojke) je: 50 72 20 05 093. Kontrolna brojka se određuje tako da se cifre u broju kola od 11 Cifara na neparnom mestu pomnože sa 2 i saberu sa ciframa na parnom mestu. Zbir se oduzme od prvog većeg broja koji se završava nulom i rezultat je kontrolni broj. Ako se prilikom množenja brojki na neparnom mestu dobije dvocifren broj onda se on pretvara u jednocifren sabiranjem jedinice i desetice (npr. 2X7 = 14 » 1 + 4 = 5 ili 2 X 5 = 10- 1 + 0 = 1) i potom se sabira sa ostalim ciframa. U primeru je:
(5 X 2) + 0 + (7 X 2) + 2 + 2 X 2 + 0 + (0 h 2)+ 5 + (0 h 2) + 9+3 h 2 = 1 + 0 + 5 + 2 + 4 + 0 + 0 + 5 + 0 + 9 + 6 = 32
Kontrolna cifra je 40 - 32 =8

Broj se upisuje u više ćelija, primer u prilogu...
Re: Izračunavanje kontrolnog broja 07.02.2017. u 17:21 · pre 118 meseci #3
Code:

Function kontrolni_broj(str As String) As Variant
  
  l = Len(str)
  If l <> 11 Then
    'MsgBox "Dužina stringa (" & l & ") nije 11 karaktera!"
    kontrolni_broj = CVErr(xlErrValue)
    Exit Function
  End If
  
  tmp = 0
  For i = 1 To l
    char = Mid(str, i, 1)
    If char < "0" Or char > "9" Then
      'MsgBox "Na poziciji (" & i & ") se nalazi nenumerički znak (" & char & ")!"
      kontrolni_broj = CVErr(xlErrValue)
      Exit Function
    End If
    char = Val(char)
    
    If (i Mod 2) = 0 Then
      tmp = tmp + char
    Else
      times2 = char * 2
      If times2 < 10 Then
        tmp = tmp + times2
      Else
        tmp = tmp + (times2 Mod 10) + Int(times2 / 10)
      End If
    End If
  Next i
  
  Debug.Print tmp
  
  kontrolni_broj = (10 - (tmp Mod 10)) Mod 10
  
End Function


formula u ćeliji F1
=kontrolni_broj(A1&B1&C1&D1)
Re: Izračunavanje kontrolnog broja 07.02.2017. u 21:23 · pre 118 meseci #4
Uz jednostavniji VBA koji ti je dao @djoka_I, ako hoćeš formulu (jeste da je katastrofalno dugačka ali radi :)
Code:
=MROUND(SUM(IF(LEN(MID(A1&B1&C1&D1;1;1)*2)>1;(MID(MID(A1&B1&C1&D1;1;1)*2;1;1)*1+MID(MID(A1&B1&C1&D1;1;1)*2;2;1)*1);MID(A1&B1&C1&D1;1;1)*2);MID(A1&B1&C1&D1;2;1)*1;IF(LEN(MID(A1&B1&C1&D1;3;1)*2)>1;(MID(MID(A1&B1&C1&D1;3;1)*2;1;1)*1+MID(MID(A1&B1&C1&D1;3;1)*2;2;1)*1);MID(A1&B1&C1&D1;3;1)*2);MID(A1&B1&C1&D1;4;1)*1;IF(LEN(MID(A1&B1&C1&D1;5;1)*2)>1;(MID(MID(A1&B1&C1&D1;5;1)*2;1;1)*1+MID(MID(A1&B1&C1&D1;5;1)*2;2;1)*1);MID(A1&B1&C1&D1;5;1)*2);MID(A1&B1&C1&D1;6;1)*1;IF(LEN(MID(A1&B1&C1&D1;7;1)*2)>1;(MID(MID(A1&B1&C1&D1;7;1)*2;1;1)*1+MID(MID(A1&B1&C1&D1;7;1)*2;2;1)*1);MID(A1&B1&C1&D1;7;1)*2);MID(A1&B1&C1&D1;8;1)*1;IF(LEN(MID(A1&B1&C1&D1;9;1)*2)>1;(MID(MID(A1&B1&C1&D1;9;1)*2;1;1)*1+MID(MID(A1&B1&C1&D1;9;1)*2;2;1)*1);MID(A1&B1&C1&D1;9;1)*2);MID(A1&B1&C1&D1;10;1)*1;IF(LEN(MID(A1&B1&C1&D1;11;1)*2)>1;(MID(MID(A1&B1&C1&D1;11;1)*2;1;1)*1+MID(MID(A1&B1&C1&D1;11;1)*2;2;1)*1);MID(A1&B1&C1&D1;11;1)*2));10)+10-SUM(IF(LEN(MID(A1&B1&C1&D1;1;1)*2)>1;(MID(MID(A1&B1&C1&D1;1;1)*2;1;1)*1+MID(MID(A1&B1&C1&D1;1;1)*2;2;1)*1);MID(A1&B1&C1&D1;1;1)*2);MID(A1&B1&C1&D1;2;1)*1;IF(LEN(MID(A1&B1&C1&D1;3;1)*2)>1;(MID(MID(A1&B1&C1&D1;3;1)*2;1;1)*1+MID(MID(A1&B1&C1&D1;3;1)*2;2;1)*1);MID(A1&B1&C1&D1;3;1)*2);MID(A1&B1&C1&D1;4;1)*1;IF(LEN(MID(A1&B1&C1&D1;5;1)*2)>1;(MID(MID(A1&B1&C1&D1;5;1)*2;1;1)*1+MID(MID(A1&B1&C1&D1;5;1)*2;2;1)*1);MID(A1&B1&C1&D1;5;1)*2);MID(A1&B1&C1&D1;6;1)*1;IF(LEN(MID(A1&B1&C1&D1;7;1)*2)>1;(MID(MID(A1&B1&C1&D1;7;1)*2;1;1)*1+MID(MID(A1&B1&C1&D1;7;1)*2;2;1)*1);MID(A1&B1&C1&D1;7;1)*2);MID(A1&B1&C1&D1;8;1)*1;IF(LEN(MID(A1&B1&C1&D1;9;1)*2)>1;(MID(MID(A1&B1&C1&D1;9;1)*2;1;1)*1+MID(MID(A1&B1&C1&D1;9;1)*2;2;1)*1);MID(A1&B1&C1&D1;9;1)*2);MID(A1&B1&C1&D1;10;1)*1;IF(LEN(MID(A1&B1&C1&D1;11;1)*2)>1;(MID(MID(A1&B1&C1&D1;11;1)*2;1;1)*1+MID(MID(A1&B1&C1&D1;11;1)*2;2;1)*1);MID(A1&B1&C1&D1;11;1)*2))
Re: Izračunavanje kontrolnog broja 07.02.2017. u 21:30 · pre 118 meseci #5
Citat:
drvlada75:
Odakle 40?

Prvi veći djeljiv sa 10 od broja 32 je 40.
(tj. prvi veći koji završava sa nulom)
Re: Izračunavanje kontrolnog broja 07.02.2017. u 22:29 · pre 118 meseci #6
Hvala,
postoji još jedan uslov "kontrolni broj" mora da bude jednocifren ili je 0 ako je rezultat okruglo 50, ili 40
Re: Izračunavanje kontrolnog broja 08.02.2017. u 05:59 · pre 118 meseci #8
Citat:
Ivek33: Prvi veći djeljiv sa 10 od broja 32 je 40.
(tj. prvi veći koji završava sa nulom)

Hvala ivek33.
Ja sam razumeo da se taj broj iscitava iz pocetnog broja za koji treba odrediti kontrolnu cifru :)
Potpis
Re: Izračunavanje kontrolnog broja 08.02.2017. u 16:18 · pre 118 meseci #9
Citat:
aca89_:
Hvala,
postoji još jedan uslov "kontrolni broj" mora da bude jednocifren ili je 0 ako je rezultat okruglo 50, ili 40
jel te zadovoljava rješenje koje je dao djoka_I? ili hoćeš baš formulu?
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme