Kezdőlap › Fórumok › Excel témák › Több tábla összefésülése/összehasonlítása
- This topic has 7 hozzászólás, 3 résztvevő, and was last updated 2 years, 1 month telt el by delila.
-
SzerzőBejegyzés
-
2022-10-19-13:26 #9367
Ü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!
2022-10-19-18:05 #9370Szia!
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éntBá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
2022-10-20-16:39 #9381Szia!
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.2022-10-21-10:50 #9385Szia!
Írtam egy makrót, ami elkészíti az összesítést.
A csatolt füzetben az Osszesites makrót kell indítanod.Üdv,
DelilaAttachments:
You must be logged in to view attached files.2022-10-23-21:03 #9401Szia!
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
2022-10-24-07:07 #9407Nem 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.
2022-10-24-16:02 #9409Most 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.
2022-10-25-10:03 #9410Indí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.
-
SzerzőBejegyzés
- Be kell jelentkezni a hozzászóláshoz.