Kezdőlap › Fórumok › Excel programozás › cellaérték hasonlítása, sorbeszúrás, szummázás
- This topic has 6 hozzászólás, 3 résztvevő, and was last updated 5 years, 8 months telt el by spieder.
-
SzerzőBejegyzés
-
2016-12-22-21:26 #3267
Sziasztok,
Azt szeretném makróval megoldani, hogy egy pár száz soros táblázat „A oszlopában” lévő azonos cikkekhez tartozó darabszámokat „B oszlop” összegezze úgy, hogy az adott cikk sorai után szúrjon be egy sort, és oda írja be az adott cikk össz darabszámát. A klasszikus PIVOT sajnos ebben az esetben nem jó, a lenti képet szeretném látni. 1-1 termékcsoport többször is előfordulhat, de elég mindet csak az adott blokkban összegezni.
Segítségeteket előre is köszönöm.
Példa:alma 5
alma 15
alma 20
körte 40
körte 20
barack 60
dinnye 60
dinnye 20
dinnye 10
dinnye 80
répa 40
répa 20
alma 40
alma 50A makró futtatása után pedig így módosulna a táblázat:
alma 5
alma 15
alma 20
Összesen: 40
körte 40
körte 20
Összesen: 60
barack 60
Összesen: 60
dinnye 60
dinnye 20
dinnye 10
dinnye 80
Összesen: 170
répa 40
répa 20
Összesen: 60
alma 40
alma 50
Összesen: 90Attachments:
You must be logged in to view attached files.2016-12-22-23:01 #3269Szia!
Tehát ha a csoportok ismétlődhetnek, és valóban azt szeretnéd látni, amit leírtál a példában, akkor valóban makrót kell írni rá.
Ha soha nem programoztál, akkor ez egy kicsit nehéz lesz első feladatnak.
Hol tartasz makróprogramozásban?
2016-12-22-23:44 #3270Én nagyjából ezt az algoritmust állítanám fel.
—————————————–'Első cella 'ciklus amíg nem üres az akt. cella ' s = akt. sor értéke ' ciklus amíg a ugyanaz aszöveg ' következő cella ' s = s + akt. sor értéke ' ciklus vége ' új sor beszúrás ' új sorba: "Összesen:" és mellé s ' következő cella 'ciklus vége
Imre
2016-12-23-10:04 #3271Így oldanám meg (Horvimiétől kicsit eltérő módon):
Sub Beszuras() Dim sor As Long, kezd As Long, f As Boolean sor = 1: f = False Do While Cells(sor, 1) > "" If Not f Then kezd = sor: f = True End If If Cells(sor + 1, 1) <> Cells(sor, 1) Then Rows(sor + 1).EntireRow.Insert Cells(sor + 1, 1) = "Összesen:" Cells(sor + 1, 2) = "=sum(B" & kezd & ":B" & sor & ")" Range(Cells(sor + 1, 1), Cells(sor + 1, 2)).Font.Bold = True sor = sor + 2 f = False Else sor = sor + 1 End If Loop End Sub
- A hozzászólás módosításra került: 7 years, 11 months telt el-delila.
2016-12-23-15:32 #3273Sziasztok,
köszi a tippeket, ezek alapján megpróbálom. Régebben VB-ben gyakoroltam, tehát az algoritmus megvan, csak excel formába kell önteni 🙂 és ebben szerintem delila kódja fog segíteni.2016-12-23-17:43 #3274Írd meg, ha sikerült összehozni!
2019-03-13-20:29 #5719Szia delila, nem tudom két év után itt vagy-e még, de utólag is nagyon köszi. Tökéletesen működik 🙂
-
SzerzőBejegyzés
- Be kell jelentkezni a hozzászóláshoz.