Excel - A makró csoportosítása oszlop- és összegértékek szerint
A Microsoft Office szoftver tartalmazza a Microsoft Excel programot, amely grafikus táblázatok, számítások, makró programozási nyelv, VBA (Visual Basics for Applications) és pivot táblák. Az adatok listázásához egy pivot táblát használnak; felismeri és összegzi ezeket az adatokat a meghatározott eredmények elérése érdekében. A makró a parancsok vagy műveletek listáját mutatja, amelyek gyorsabbá teszik az Excel Office szoftver hosszadalmas adatait vagy ismétlődő feladatait; ez akkor futtatható, ha szükséges a feladat végrehajtása. Az értékeket veszi, elvégzi a szükséges műveletet, és ennek megfelelően visszaküldi az értéket. Ha makrót szeretne írni csoporthoz oszlop és összeg szerint, akkor csak a megfelelő parancsok segítségével indítsa el a makrót.
Probléma
A következő példához makrót kell írni:
Tétel Mennyiség A 1 100 A 1 100 B 2 200 B 1 100 B 5 100 C 4 200 C 2 100 C 1 200 C 3 100
Alapvetően az A oszlopra (azaz a tételre) és a C oszlopra (azaz a hosszúságra) szeretnék csoportosítani, és az egyes hosszúságváltozások összességét is hozzá szeretném adni egy elemhez. Ebben az esetben az eredmény az új lapon az alábbi lesz:
Tétel Mennyiség A 2 100 B 2 200 B 6 100 C 5 200 C 5 100
Remélem, ez értelme.
Segíthet-e bárki, hogy írjak egy Excel makrót erre?
Megoldás
Próbáld ezt
Feltevés:
- 1. Amikor elindít egy makrot, az aktív lap az az oldal, ahonnan az adatokat másolni kívánja
- 2. Egy üres oszlop az A oszlopban jelzi az adatok végét
- 3. A 3. lapra szeretné beilleszteni (helyes makró, ha ez nem így van)
Sub konsolidateData () Dim LRow As LongRowTextRow1, ItemRow2 karakterláncként Hosszú sorban1, hosszRow2 String oszlopokként ("A: C"). Válassza ki a Selection.Copy Sheets ("Sheet3") elemet. .Pakciók beillesztése.Válassza ki a kiválasztást.Sort _ Key1: = Tartomány ("A2"), Rendelés1: = xlAscending, _ Kulcs2: = Tartomány ("C2"), Rendelés2: = xlDescending, _ Fejléc: = xlYes, RendelésCustom: = 1, _ MatchCase: = False, Orientation: = xlTopToBottom, _ DataOption1: = xlSortNormal lRow = 2 Míg (Cellák (lRow, 1) "" ") TételRow1 = Cella (lRow, " A ") ItemRow2 = Cells (lRow + 1, "A") lengthRow1 = cellák (lRow, "C") lengthRow2 = cellák (lRow + 1, "C") Ha ((ItemRow1 = ItemRow2) és (lengthRow1 = lengthRow2)) Ezután a cellák (lRow, "B") = Sejtek (lRow, "B") + Cellák (lRow + 1, "B") Sorok (lRow + 1). Elet Else lRow = lRow + 1 Vége Ha Loop End Sub
jegyzet
Köszönet a rizvisa1-nek a fórumon található tippért.