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

Nalazenje slicnih JMBG-ova

[es] :: Office :: Excel :: Nalazenje slicnih JMBG-ova

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

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

celawi
Aleksandar Obrenovic
bg

Član broj: 83708
Poruke: 164
*.rzzo.rs.

Sajt: www.restoranibeograda.com


+1 Profil

icon Nalazenje slicnih JMBG-ova23.02.2010. u 13:51 - pre 171 meseci
U jednom sheetu imam JMBG-ove za tekuci mesec, a u drugom sheetu imam bazu JMBG-ova i sad treba da vidim da li se ti trenutni JMBG-ovi nalaze u bazi. Preko formule VLOOKUP uspesno nadjem iste JMBG-ove. Mene zanima da li postoji neka formula koja bi mi nasla JMBG-ove koji su upisani greskom, znaci kod kojih su permutovani neki brojevi, a radi se o istom JMBG-u odnosno coveku.

npr. 1234567890123
2134567890132

nadam se da sam lepo objasnio.
 
Odgovor na temu

3okc
Χoᴘᴦoѡ

Moderator
Član broj: 811
Poruke: 1318

Jabber: 3okc@elitesecurity.org


+116 Profil

icon Re: Nalazenje slicnih JMBG-ova23.02.2010. u 16:17 - pre 171 meseci
Rešenje zavisi od toga koji metod za proveru izabereš. Najopštije bi bilo da uporediš svaku poziciju i da prebrojiš koliko ima poklapanja.
Code:
=SUMPRODUCT(--(MID("1234567890123";ROW(INDIRECT("1:12"));2) = MID("2134567890132";ROW(INDIRECT("1:12"));2)))

S tim da umesto brojeva u navodnicima možeš da staviš ref. ka ćelijama koje ispituješ.

Rezultujući broj možeš da podeliš sa 12 da bi dobio izraz u procentima.

Iako efektan, ovaj metod ne može da uoči brojeve koji su pomereni ulevo ili udesno za karakter.

Npr uzmi u obzir vrlo čestu grešku kod upisivanja JMB-va, da im nedostaje vodeća nula, pa tako dva broja
0123456789ABC i
123456789ABC
po ovoj formuli će imati 0% poklapanja!
Have you found helpful examples, solutions or ideas-in-work, please consider the
following:
• Citation of *actual page* you are going to using is welcome.
• Have you saw "Value Added" examples you are going to incorporate to your
profitable blog, daily job or any money making venture: How about online donation?
↗Ana & Vlade Divac Foundation
Hvala!
 
Odgovor na temu

celawi
Aleksandar Obrenovic
bg

Član broj: 83708
Poruke: 164
*.dynamic.sbb.rs.

Sajt: www.restoranibeograda.com


+1 Profil

icon Re: Nalazenje slicnih JMBG-ova23.02.2010. u 17:23 - pre 171 meseci
Citat:
3okc: Iako efektan, ovaj metod ne može da uoči brojeve koji su pomereni ulevo ili udesno za karakter.

Npr uzmi u obzir vrlo čestu grešku kod upisivanja JMB-va, da im nedostaje vodeća nula, pa tako dva broja
0123456789ABC i
123456789ABC
po ovoj formuli će imati 0% poklapanja!


Ovaj problem nemam, jer su kolone formatirane kao text pre ubacivanja JMBG-a, pa onda se vidi vodeca 0...
Probacu da primenim ovu formulu



Citat:
3okc: Rezultujući broj možeš da podeliš sa 12 da bi dobio izraz u procentima.


Da ga delim sa 12 ili 13? Jer sa nulom ima 13 cifara.
 
Odgovor na temu

Jpeca
Predrag Jovanović
poslovni analitičar
Gowi
Pančevo

Moderator
Član broj: 25683
Poruke: 2267
*.3dnet.co.yu.

Sajt: www.gowi.rs


+109 Profil

icon Re: Nalazenje slicnih JMBG-ova23.02.2010. u 21:20 - pre 171 meseci
Kako JMBG ima kontrolnu cifru, možda je moguć zaobilazan pristup problemu. Proveriti u listi JMBG koje su neispavne, pa njih ispraviti. Nakon toga i "obični" VLOOKUP bi trebao da obavi posao. Jednu funkciju za proveru ispravnosti JMBG možeš naći na praktikumu http://www.praktikum.rs/office/excel/xl_086.asp
Nije to loše Rembrante, samo što ne bi dodao još malo boje?
 
Odgovor na temu

celawi
Aleksandar Obrenovic
bg

Član broj: 83708
Poruke: 164
*.rzzo.rs.

Sajt: www.restoranibeograda.com


+1 Profil

icon Re: Nalazenje slicnih JMBG-ova24.02.2010. u 06:59 - pre 171 meseci
Citat:
Jpeca: Jednu funkciju za proveru ispravnosti JMBG možeš naći na praktikumu http://www.praktikum.rs/office/excel/xl_086.asp


Jel moze kratko objasnjenje kako da upotrebim ovu funkciju?...Gde treba da je smestim?
 
Odgovor na temu

3okc
Χoᴘᴦoѡ

Moderator
Član broj: 811
Poruke: 1318

Jabber: 3okc@elitesecurity.org


+116 Profil

icon Re: Nalazenje slicnih JMBG-ova24.02.2010. u 08:18 - pre 171 meseci
Citat:
celawi: Da ga delim sa 12 ili 13? Jer sa nulom ima 13 cifara.


Tačno je da JMB ima 13 cifara ali sam formulu napisao tako da se proveravaju po dva karaktera, a parova ukupno ima 12. :)

Što se tiče upotrebe "korisnički definisanih f-ja" stvarno je već bilo puno puta reči, a koga mrzi da traži po forumu, tu je www

Writing Your First VBA Function in Excel
How to Create a User Defined Function in Microsoft Excel
Create Custom Functions in Excel 2007
Have you found helpful examples, solutions or ideas-in-work, please consider the
following:
• Citation of *actual page* you are going to using is welcome.
• Have you saw "Value Added" examples you are going to incorporate to your
profitable blog, daily job or any money making venture: How about online donation?
↗Ana & Vlade Divac Foundation
Hvala!
 
Odgovor na temu

Jpeca
Predrag Jovanović
poslovni analitičar
Gowi
Pančevo

Moderator
Član broj: 25683
Poruke: 2267
194.106.170.*

Sajt: www.gowi.rs


+109 Profil

icon Re: Nalazenje slicnih JMBG-ova24.02.2010. u 08:21 - pre 171 meseci
Radi se o korisnički definisanoj funkciji i Mirko1949 se potrudio da napiše kratko uputstvo kako napaviti korisnički definisanu funkciju, što možeš naći ovde http://www.elitesecurity.org/t391450-0#2521616

Ukoliko koristiš Excel 2007 pogledaj i napovenu u vezi korišćenja korisničke funkcije ovde http://www.elitesecurity.org/t388644-0#2499628

Na kraju jedno jednostavnije rešenje funkcije koje sam našao negde na ovom forumu i prepravio za Excel. Proverava se samo kontrolna cifra i vraća true/false tako da se funkcija može koristiti npr. za uslovno formatiranje ili validaciju (validaciju nisam uspeo da postavim direktno nego preko medjurezultata)
Code:
Public Function IspravanJMBG(JMBG As String) As Boolean
'  Preuzeto sa Elitesecurity foruma
    Dim niz(13) As Byte
    Dim I As Integer
    Dim br As Integer
    For I = 1 To 13
        niz(I) = Asc(Mid(JMBG, I, 1)) - Asc("0")
    Next I
    br = 0
    For I = 1 To 6
        br = br + (8 - I) * (niz(I) + niz(I + 6))
    Next I
    IspravanJMBG = ((11 - br Mod 11) = niz(13)) 'Vraca TRUE ako kontrolni broj OK
End Function

Nije to loše Rembrante, samo što ne bi dodao još malo boje?
 
Odgovor na temu

timmy
Jovan Timotijevic

Moderator
Član broj: 37087
Poruke: 634

Sajt: www.e-tim.net


+89 Profil

icon Re: Nalazenje slicnih JMBG-ova24.02.2010. u 11:05 - pre 171 meseci
Evo i mog doprinosa temi...

Funkcija sa praktikuma je planirana da radi samo do 2000 te godine a takodje ne proverava ispravno prestupne godine...

Kod za proveru JMBG i prestupne godine omogucava da se proveri ispravnost unetog broja kao i da se dobiju povratne
informacije o datumu rodjenja odnosno poreklu osobe.



Code:

Option Explicit

Public Enum JMBGTip
    jCheckErr = 0
    jDescript = 1
End Enum

Public Function JMBG(c As String, Tip As JMBGTip) As Variant
' Return code
' 0 - ok
' 1 - Nisu uneti svi brojevi
' 2 - Ima unetih karaktera koji nisu brojke
' 3 - Dan
' 4 - Mesec
' 5 - Godina
' 6 - Lokacija
' 7 - Kontrolni

Dim err As Byte
Dim Dan As Integer
Dim Mesec As Integer
Dim Godina As Integer
Dim Lokacija As Integer
Dim Pol As Integer
Dim Beba As Integer
Dim Kontrolni As Integer
Dim Lok(0 To 95) As String
Dim ErrMsg(1 To 7) As String
Dim i As Integer

    ErrMsg(1) = "JMBG mora imati 13 cifara!"
    ErrMsg(2) = "JMBG se sastoji samo od brojki!"
    ErrMsg(3) = "Neispravno unet DAN rodjenja (prve dve cifre)"
    ErrMsg(4) = "Nesipravno unet MESEC rodjenja (treca i cetvrta cifra)"
    ErrMsg(5) = "Nesipravno uneta GODINA rodjenja (peta, sesta i sedma cifra)"
    ErrMsg(6) = "Nesipravno uneta LOKACIJA rodjenja (osma i deveta cifra)"
    ErrMsg(7) = "Nesipravno unet JMBG"
    
    Lok(0) = "Naturalizovani stranci"
    Lok(1) = "Naturalizovani stranci BIH"
    Lok(2) = "Naturalizovani stranci Crna Gora"
    Lok(3) = "Naturalizovani stranci Hrvatska"
    Lok(4) = "Naturalizovani stranci Makedonija"
    Lok(5) = "Naturalizovani stranci Slovenija"
    Lok(6) = "Naturalizovani stranci Srbija"
    Lok(7) = "Naturalizovani stranci Vojvodina"
    Lok(8) = "Naturalizovani stranci Kosovo"
    Lok(9) = "Naturalizovani stranci"
    Lok(10) = "Banja Luka"
    Lok(11) = "Bihać"
    Lok(12) = "Doboj"
    Lok(13) = "Goražde"
    Lok(14) = "Livno"
    Lok(15) = "Mostar"
    Lok(16) = "Prijedor"
    Lok(17) = "Sarajevo"
    Lok(18) = "Tuzla"
    Lok(19) = "Zenica"
    Lok(21) = "Podgorica"
    Lok(23) = "Budva"
    Lok(26) = "Nikšić"
    Lok(30) = "Osijek, Slavonija"
    Lok(31) = "Bjelovar, Podravina"
    Lok(32) = "Varaždin, Međimurje region"
    Lok(33) = "Zagreb"
    Lok(34) = "Karlovac, Kordun"
    Lok(35) = "Gospić, Lika"
    Lok(36) = "Rijeka, Pula, Gorski kotar"
    Lok(37) = "Sisak, Banovina"
    Lok(38) = "Split, Zadar, Šibenik, Dubrovnik, Dalmacija"
    Lok(39) = "Hrvatsko Zagorje"
    Lok(41) = "Bitola"
    Lok(42) = "Kumanovo"
    Lok(43) = "Ohrid"
    Lok(44) = "Prilep"
    Lok(45) = "Skopje"
    Lok(46) = "Strumica"
    Lok(47) = "Tetovo"
    Lok(48) = "Veles"
    Lok(49) = "Štip"
    Lok(50) = "Slovenia"
    Lok(71) = "Beograd"
    Lok(72) = "Šumadija"
    Lok(73) = "Niš"
    Lok(74) = "Lekovac, Vranje"
    Lok(75) = "Zaječar, Bor"
    Lok(76) = "Smederevo"
    Lok(77) = "Šabac, Valjevo"
    Lok(78) = "Kraljevo, Čačak"
    Lok(79) = "Užice"
    Lok(80) = "Novi Sad"
    Lok(81) = "Sombor"
    Lok(82) = "Subotica"
    Lok(85) = "Zrenjanin"
    Lok(86) = "Pančevo"
    Lok(87) = "Kikinda"
    Lok(88) = "Ruma"
    Lok(89) = "Sremska Mitrovica, Inđija"
    Lok(91) = "Priština"
    Lok(92) = "K. Mitrovica"
    Lok(93) = "Peć"
    Lok(94) = "Đakovic"
    Lok(95) = "Prizren"

    Dan = Left(c, 2)
    Mesec = Mid(c, 3, 2)
    Godina = Mid(c, 5, 3)
    Godina = Godina + IIf(Godina < 100, 2000, 1000)
    Lokacija = Mid(c, 8, 2)
    Beba = Mid(c, 10, 3)
    Pol = IIf(Beba < 500, 0, 1)
    
    err = 0
    If Len(c) <> 13 Then
    err = 1
    ElseIf Not (c Like "#############") Then err = 2
    ElseIf Dan < 1 Or Dan > 31 Then err = 3
    ElseIf Mesec < 1 Or Mesec > 12 Then err = 4
    ElseIf Godina < 1900 Or Godina > Year(Now) Then err = 5
    End If
    Select Case Mesec
        Case 1, 3, 5, 7, 8, 10, 12
            If Dan > 31 Then err = 3
        Case 4, 6, 9, 11
            If Dan > 30 Then err = 3
        Case 2
            If (Prestupna(Godina) And Dan > 29) Or (Not Prestupna(Godina) And Dan > 28) Then err = 3
    End Select
    If err = 0 Then
        If Lokacija > 95 Then
            err = 6
        ElseIf Lok(Lokacija) = "" Then err = 6
        End If
    End If
    
    If err = 0 Then
        Kontrolni = 11 - (( _
                    7 * (Val(Mid(c, 1, 1) + Val(Mid(c, 7, 1)))) + _
                    6 * (Val(Mid(c, 2, 1) + Val(Mid(c, 8, 1)))) + _
                    5 * (Val(Mid(c, 3, 1) + Val(Mid(c, 9, 1)))) + _
                    4 * (Val(Mid(c, 4, 1) + Val(Mid(c, 10, 1)))) + _
                    3 * (Val(Mid(c, 5, 1) + Val(Mid(c, 11, 1)))) + _
                    2 * (Val(Mid(c, 6, 1) + Val(Mid(c, 12, 1))))) Mod 11)

        If Kontrolni = 11 Then Kontrolni = 0
        
        If Kontrolni = 10 Then err = 7
        If err = 0 And Val(Right(c, 1)) <> Kontrolni Then err = 7
    End If
    If err = 0 Then
        JMBG = IIf(Tip = jCheckErr, True, _
        Format(Dan, "00") & "." & Format(Mesec, "00") & "." & Format(Godina, "0000") & ". " & _
        IIf(Pol = 0, "Muško, ", "Žensko, ") & Lok(Lokacija) & ", " & IIf(Beba > 500, Beba - 500, Beba) & ". beba u danu")
    Else
        JMBG = IIf(Tip = jCheckErr, err, ErrMsg(err))
    End If
        
End Function

Public Function Prestupna(Godina As Integer) As Boolean
    Prestupna = (Prestupna Mod 4 = 0) And ((Godina Mod 400 = 0) Or (Godina Mod 100 <> 0))
End Function


U prilogu je i primer koji opisuje kako se koristi pomenuta funkcija JMBG.

Pozdrav
Prikačeni fajlovi
 
Odgovor na temu

celawi
Aleksandar Obrenovic
bg

Član broj: 83708
Poruke: 164
*.rzzo.rs.

Sajt: www.restoranibeograda.com


+1 Profil

icon Re: Nalazenje slicnih JMBG-ova24.02.2010. u 12:49 - pre 171 meseci
Timmy...ovo mi moze pomoci tako sto cu u bazi JMBG-ova pogledati koji su maticni tacni, a koji nisu...

ali najveca pomoc bi mi bila kad bi posle formule VLOOKUP (koja bi pronasla identicne maticne), mogao da pokrenem formulu koja bi mi nasla slicne maticne (u bazi koja je u drugom sheetu) od ovih koji su preostali (odnosno koji su ostali nepronadjeni posle formule VLOOKUP). Te maticne bih smatrao da su greskom uneti. Znaci nesto slicno kao fajl u mom attachu, samo sto on pretrazuje do 1 razlicitog broja, a meni bi trebalo bar 3-4.
Prikačeni fajlovi
 
Odgovor na temu

[es] :: Office :: Excel :: Nalazenje slicnih JMBG-ova

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

Postavi temu Odgovori

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