Telefonszámunk: 1-472-0679

Több tábla összefésülése/összehasonlítása

Kezdőlap Fórumok Excel témák Több tábla összefésülése/összehasonlítása

8 bejegyzés megtekintése - 1-8 / 8
  • Szerző
    Bejegyzés
  • #9367
    ChaserHUN
    Felhasználó

    Üdv!

    Excel 2019

    Szóval adott egy tábla vevőkről. Minden vevő több sorban szerepelhet, amennyiben ugye több különböző elnevezésű számlája van. Az oszlopok mindig ugyanazok. Kimutatást kell készítenem ugye a vevői tartozásokról és ezt kb. havi szinten meg kellene csinálnom.

    Kérdés, hogy két eltérő tartalmú táblákat hogyan tudok egybefűzni valahogy úgy, hogy kitudjam mutatni, hogy hogyan változott mondjuk egy adott számla hátraléka? Tehát, hogy az új sorok bekerüljenek, de a régiek se tűnjenek el és az új hónap egyenlegét egy plusz oszlopba rakjam. Lehet ez így most komplikáltnak hangzik, meg az excel nem is képes önmagában rá.

    Köszönöm előre is a segítséget!

    #9370
    horvimi
    Adminisztrátor

    Szia!

    Hát enyhén szólva nem egyértelmű a feladat, de homályosan sejthető. Amit sejtek:

    Részletfizetésről van szó?
    Van egy számla egy eredeti összegről, és azt törleszti, így minden befizetéskor csökken a tartozása?
    Emiatt a számlaszám minden befizetéskor ugyanaz?

    Ha ajó a modell, akkor ez megcsinálható viszonylag egyszerűen.
    Pl. Az eredeti, teljes összeg pozitív, a befizetés negatív értékekkel, akkor egy sima összesítés számlaszámonként

    Bárhoyg is, az eredeti összegnek meg kell lennie egy számlához, és a hozzá tartozó befizetéseket is azonosítani kell, és kapcsolnio az eredeti számlához.
    A befizető is a számlához tartozik egyértelműen, de a számla azonosító fontosabb.

    Kb ilyesmire gondolok, de minta nélkül nem tudok tovább menni.

    Imre

    #9381
    ChaserHUN
    Felhasználó

    Szia!

    Valami olyasmiről lenne szó. akár fizetheti részletekben, de lehet egybe befizette. Lényeg, hogy nyomon tudjam követni, hogy hogy alakult mondjuk egyik hónapról a másikra, vagy akár hetente. A programból ugye excelt tudok lekérni adott időszakra.
    Csatoltam egy példa.xlsx-t. Ebbe nyilván kézzel vittem be most szemléltetésként az adatokat. Csináltam egy szeptember, október, illetve riport fület. Amint látszik az októberbe már több számla van, de pl. van ami azóta kifizetésre került. A riport fül az amit kiszeretnék hozni, csak nyilván most manuálisan átmásolgattam mindent, de ugye élesben több ezer soros táblákról van szó, szóval kizárt manuálisan végig csinálni.

    Valami hasonlókat találtam amit power query-vel csináltak vagy kutoolsal, de nem igazán találtam 100%-os megoldást a problémámra.

    Attachments:
    You must be logged in to view attached files.
    #9385
    delila
    Felhasználó

    Szia!

    Írtam egy makrót, ami elkészíti az összesítést.
    A csatolt füzetben az Osszesites makrót kell indítanod.

    Üdv,
    Delila

    Attachments:
    You must be logged in to view attached files.
    #9401
    ChaserHUN
    Felhasználó

    Szia!

    Ezt a fejlesztőeszközök/makrók között kellene találnom? Mert ott üres sajnos minden. Bocsánat a késői reakcióért, még csak most volt időm megnézni

    #9407
    delila
    Felhasználó

    Nem tudom, miért nincsenek ott a makrók. Bemásolom ide.
    Alt+F11-re bejön a VB szerkesztő. Bal oldalon kiválasztod a füzetedet (ha van több is megnyitva), az Insert-Module kiválasztására kapsz egy új modult bal oldalon, Module1 névvel. A jobb oldali nagy üres mezőbe másold be ezeket:

    Sub Osszesites()
        Dim lap As Integer, uoszlop As Integer, usorR As Long, lapnev As String
        Sheets("Riport_2").Cells.Delete
        Sheets(2).Range("A1:E1").Copy Sheets("Riport_2").Range("A1")
        
        For lap = 2 To Worksheets.Count
            If Left(Sheets(lap).Name, 6) <> "Riport" Then
                uoszlop = Sheets("Riport_2").Cells(1, Columns.Count).End(xlToLeft).Column + 1
                usorR = Sheets("Riport_2").Range("A" & Rows.Count).End(xlUp).Row + 1
                With Sheets(lap)
                    Sheets(1).Cells(1, uoszlop) = "Hátralék " & .Name
                    usor = .Range("A" & Rows.Count).End(xlUp).Row
                    .Range("A2:E" & usor).Copy Sheets(1).Range("A" & usorR)
                    .Range("F2:F" & usor).Copy Sheets(1).Cells(usorR, uoszlop)
                End With
            End If
        Next
        Rendez uoszlop
    End Sub
    
    Sub Rendez(uoszlop)
        Sheets("Riport_2").Select
        usor = Range("A" & Rows.Count).End(xlUp).Row
        
        ActiveWorkbook.Worksheets("Riport_2").Sort.SortFields.Clear
        ActiveWorkbook.Worksheets("Riport_2").Sort.SortFields.Add2 Key:=Range("B1:B" & usor), _
            SortOn:=xlSortOnValues, Order:=xlAscending
        ActiveWorkbook.Worksheets("Riport_2").Sort.SortFields.Add2 Key:=Range("D1:D" & usor), _
             SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
        ActiveWorkbook.Worksheets("Riport_2").Sort.SortFields.Add2 Key:=Range("A1:A" & usor), _
             SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
        With ActiveWorkbook.Worksheets("Riport_2").Sort
            .SetRange Range(Cells(2, 1), Cells(usor, uoszlop))
            .Header = xlNo
            .MatchCase = False
            .Orientation = xlTopToBottom
            .SortMethod = xlPinYin
            .Apply
        End With
        
        Egyesites uoszlop
    End Sub
    
    Sub Egyesites(uoszlop)
        Dim oszlop As Integer
        
        Sheets("Riport_2").Select
        usor = Range("A" & Rows.Count).End(xlUp).Row
        uoszlop = Cells(1, Columns.Count).End(xlToLeft).Column
        
        For sor = usor To 3 Step -1
            If Cells(sor, 1) = Cells(sor - 1, 1) And Cells(sor, 2) = Cells(sor - 1, 2) _
                And Cells(sor, 4) = Cells(sor - 1, 4) Then
                For oszlop = 6 To uoszlop
                    Cells(sor - 1, oszlop) = Cells(sor, oszlop) + Cells(sor - 1, oszlop)
                Next
                Rows(sor).Delete
            End If
        Next
        
        Cells.EntireColumn.AutoFit
    End Sub

    A felsőt kell indítanod, az meghívja a másik kettőt.

    #9409
    ChaserHUN
    Felhasználó

    Most ezután megjelent a fejlesztőeszközök/makrók között, viszont Run time error 9-et ír ki. Kihagypk valami lépést esetleg?

    Bocsánat, makrókat még így nem igazán használtam eddig.

    #9410
    delila
    Felhasználó

    Indítod a makrót. Mikor leáll a hibaüzenettel, Alt+F11-gyel belépsz a VB szerkesztőbe. A kurzort a hibás sorban (sárga hátterű) a sor változó fölé viszed, ami megmutatja a hibás sor számát. Azzal már tudsz valamit kezdeni. Leállítod a makrót (az eszköztáron a négyszögletes stop gombbal), majd a füzetben a Riport_2 lapon kikeresed azt a sort.
    El tudom képzelni, hogy valamelyik hónapban az összeg nem szám, hanem számnak látszó szöveg.

    Vagy: tömöríted a fájlodat, és beteszed ide.

8 bejegyzés megtekintése - 1-8 / 8
  • Be kell jelentkezni a hozzászóláshoz.