Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Izračunavanje kontrolnog broja

[es] :: Office :: Excel :: Izračunavanje kontrolnog broja

[ Pregleda: 3527 | Odgovora: 8 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

aca89_
Aleksandar
Infra. Zeleznice
Beograd

Član broj: 333158
Poruke: 6



Profil

icon Izračunavanje kontrolnog broja06.02.2017. u 21:37 - pre 86 meseci
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...
Prikačeni fajlovi
 
Odgovor na temu

drvlada75
Prokuplje

Član broj: 153703
Poruke: 1204
*.static.isp.telekom.rs.



+34 Profil

icon Re: Izračunavanje kontrolnog broja07.02.2017. u 14:53 - pre 86 meseci
Odakle 40?

 
Odgovor na temu

djoka_l
Beograd

Član broj: 56075
Poruke: 3445

Jabber: djoka_l


+1462 Profil

icon Re: Izračunavanje kontrolnog broja07.02.2017. u 16:21 - pre 86 meseci
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)
 
Odgovor na temu

Ivek33

Član broj: 66174
Poruke: 2898



+66 Profil

icon Re: Izračunavanje kontrolnog broja07.02.2017. u 20:23 - pre 86 meseci
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))
 
Odgovor na temu

Ivek33

Član broj: 66174
Poruke: 2898



+66 Profil

icon Re: Izračunavanje kontrolnog broja07.02.2017. u 20:30 - pre 86 meseci
Citat:
drvlada75:
Odakle 40?

Prvi veći djeljiv sa 10 od broja 32 je 40.
(tj. prvi veći koji završava sa nulom)
 
Odgovor na temu

aca89_
Aleksandar
Infra. Zeleznice
Beograd

Član broj: 333158
Poruke: 6



Profil

icon Re: Izračunavanje kontrolnog broja07.02.2017. u 21:29 - pre 86 meseci
Hvala,
postoji još jedan uslov "kontrolni broj" mora da bude jednocifren ili je 0 ako je rezultat okruglo 50, ili 40
 
Odgovor na temu

djoka_l
Beograd

Član broj: 56075
Poruke: 3445

Jabber: djoka_l


+1462 Profil

icon Re: Izračunavanje kontrolnog broja07.02.2017. u 21:57 - pre 86 meseci
To radi moja funkcija:

Code:
kontrolni_broj = (10 - (tmp Mod 10)) Mod 10
 
Odgovor na temu

drvlada75
Prokuplje

Član broj: 153703
Poruke: 1204
*.dynamic.isp.telekom.rs.



+34 Profil

icon Re: Izračunavanje kontrolnog broja08.02.2017. u 04:59 - pre 86 meseci
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
 
Odgovor na temu

Ivek33

Član broj: 66174
Poruke: 2898



+66 Profil

icon Re: Izračunavanje kontrolnog broja08.02.2017. u 15:18 - pre 86 meseci
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?
 
Odgovor na temu

[es] :: Office :: Excel :: Izračunavanje kontrolnog broja

[ Pregleda: 3527 | Odgovora: 8 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.