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.

Előző Cikk Következő Cikk

Top Tippek