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

pomoc makro koji poredi dve kolone iz 2 sheeta

[es] :: Office :: Excel :: pomoc makro koji poredi dve kolone iz 2 sheeta

[ Pregleda: 392 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

gogi100
Goran Ljubic

Član broj: 40722
Poruke: 1064
*.dynamic.isp.telekom.rs.



+3 Profil

icon pomoc makro koji poredi dve kolone iz 2 sheeta20.10.2021. u 19:52 - pre 30 meseci
ima dva excel sheeta, sa dve kolone 'broj'. treba mi makro koji poredi ove dve kolone i kad nadje iste vrednosti kopira vrednosti iz polja iz sheet 2 u sheet 1 kao u fajlu. ja sam pokusavao sa sledecim kodom, al ne ide

Code:
Sub MatchAndCopy()

    Dim sheet01 As Worksheet, sheet02 As Worksheet
    Dim c As Range, matchingCell As Long
    Dim RangeInSheet1 As Range
    Dim RangeInSheet2 As Range
    Dim dict As Object, tmp
    Set dict = CreateObject("scripting.dictionary")

    Application.ScreenUpdating = False
    Application.DisplayStatusBar = True

    Set sheet01 = Worksheets("Sheet1")
    Set sheet02 = Worksheets("Sheet2")

    Set RangeInSheet1 = sheet01.Range(sheet01.Range("A2"), _
              sheet01.Cells(Rows.count, 1).End(xlUp))
    Set RangeInSheet2 = sheet02.Range(sheet02.Range("A2"), _
              sheet02.Cells(Rows.count, 1).End(xlUp))

    'populate dictionary...
    For Each c In RangeInSheet1.Cells
        tmp = c.Value
        If Not dict.exists(tmp) Then
            dict.Add tmp, c.Row
        End If
    Next c

    For Each c In RangeInSheet2.Cells
      tmp = c.Value
      If dict.exists(tmp) Then
        Application.StatusBar = "Please wait while data is being copied," & _
                                " Processing count : " & c.Row
        sheet01.Cells(dict(tmp), "F").Resize(1, 5).Value = _
                c.Offset(0, 1).Resize(1, 5).Value
      End If
    Next c

    Application.StatusBar = False
    Application.ScreenUpdating = True

End Sub
Prikačeni fajlovi
 
Odgovor na temu

Ivek33

Član broj: 66174
Poruke: 2898



+66 Profil

icon Re: pomoc makro koji poredi dve kolone iz 2 sheeta23.10.2021. u 14:12 - pre 30 meseci
Ne znam da li zahtjevaš isključivo VBA macro, ali svejedno meni tu nešto ne štima.
Tvoji izvorni podaci i očekivani rezultati mi nisu jasni. Za isti unique broj imaš različite korisnike i banke.

npr: Za broj 100253 imaš očekivani rezultat za jedan račun a na sheet2 imaš više računa za isti broj?
Isto tako za broj 200453 imaš račun 34-55-77 a njega očekuješ pod brojem 200345?

Evo ideja u privitku sa formulama. Uoči da imaš tri formule za jednu grupu, za svaku slijedeću grupu mijenjaš argument "k" u SMALL funkciji.
Prikačeni fajlovi
 
Odgovor na temu

Ivek33

Član broj: 66174
Poruke: 2898



+66 Profil

icon Re: pomoc makro koji poredi dve kolone iz 2 sheeta23.10.2021. u 15:32 - pre 30 meseci
Jedan mali dodatak
Možeš koristiti samo tri array formule koje selektiraš i sve tri ćelije kopiraš u desno pa dolje.
Code:

=IFERROR(INDEX(Sheet2!$B$1:$B$1000;SMALL(IF($A2=Sheet2!$A$1:$A$1000;ROW(Sheet2!$A$1:$A$1000)-MIN(ROW(Sheet2!$A$1:$A$1000))+1;"");INT(COLUMN(A1)/3)+1));"")        
=IFERROR(INDEX(Sheet2!$C$1:$C$1000;SMALL(IF($A2=Sheet2!$A$1:$A$1000;ROW(Sheet2!$A$1:$A$1000)-MIN(ROW(Sheet2!$A$1:$A$1000))+1;"");INT(COLUMN(A1)/3)+1));"")    
=IFERROR(INDEX(Sheet2!$D$1:$D$1000;SMALL(IF($A2=Sheet2!$A$1:$A$1000;ROW(Sheet2!$A$1:$A$1000)-MIN(ROW(Sheet2!$A$1:$A$1000))+1;"");INT(COLUMN(A1)/3)+1));"")

Ovdje argument "k" zamjenjuje formula (tj. brojeve, 1, 2, 3), ova formula uvećava ('k') broj na tri ćelije kada ih kopiraš u desno.
Code:
INT(COLUMN(A1)/3)+1
Prikačeni fajlovi
 
Odgovor na temu

[es] :: Office :: Excel :: pomoc makro koji poredi dve kolone iz 2 sheeta

[ Pregleda: 392 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

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