Exceli pivot-tabelid on andmete arusaadavuse ja mõistmise hõlbustamisel otsustava tähtsusega. Pivot tabel võib koondada ja koondada andmed tähenduslikeks struktuurideks. MS Exceli kasutajad on need andmetööstuses laialdaselt kasutusele võtnud.

Kas teadsite, et saate oma Exceli liigendtabeleid automatiseerida ja luua need ühe klõpsuga? MS Excel integreerub hästi VBA-ga ja sellest on saanud suurepärane tööriist korduvate toimingute automatiseerimiseks.

Siit saate teada, kuidas saate MS Excel VBA-s makroga pöördetabelit automatiseerida.

Kasutage praktikaandmete kogumit

Saate alla laadida ja kasutada mannekeeni andmestik Tableau'st et järgida selles juhendis sisalduvat VBA skripti. VBA-kood töötab mõne põhilise muudatusega kõigi teiste andmekogumitega. Enne alustamist veenduge, et teil on lubatud makrod teie Exceli töövihikus.

Pivot-tabelis on mõned olulised veerud, mida saate kasutada. Tabeli nüansside ja lõpliku struktuuri mõistmiseks saate seda teha looge käsitsi põhiliigendtabel järgmiste elementidega:

instagram viewer
  • Filter: Piirkond
  • read: Alamkategooria
  • Veerud: osariik
  • Väärtused: Müük

Otsa pöördepunkt peaks välja nägema järgmine:

Siiski võite lasta VBA-l seda teha automaatselt, mitte käsitsi ette valmistada.

Kuidas Excelis automaatselt Pivot-tabeleid luua

Pivot-tabelite automatiseerimiseks VBA-ga avage uus Exceli fail ja nimetage lehed järgmiselt.

  • Esimene leht: Makro
  • Teine leht: Andmed

The Makro leht sisaldab makro skripti, samas kui Andmed leht sisaldab teie andmeid. Makrolehele saate sisestada mis tahes kujundi ja määrata sellele makro. Paremklõpsake kujundil ja klõpsake nuppu Määra makro.

Järgmises dialoogiboksis klõpsake oma makro nimel ja klõpsake nuppu OK. See samm määrab kujundile makro.

1. Avage Exceli VBA kodeerimisredaktor

Vajutage Alt + F11 koodiredaktori avamiseks. Kui olete koodiredaktoris, paremklõpsake faili nimel ja seejärel Sisestage ja Moodul. Oluline on meeles pidada, et enne mooduli käivitamist kirjutate kogu VBA koodi.

Hea tava on kasutada mooduli nime, mis ühtib koodi eesmärgiga. Kuna tegemist on demoga, saate mooduli nime määrata järgmiselt:

sub pivot_demo()

Mooduli nimi lõpeb tähega Lõpeta alam, mis on mooduli lõppkäsk:

Lõpp Sub

2. Muutujate deklareerimine

Alustage moodulis muutujate deklareerimisega, et salvestada mõned kasutaja määratud väärtused, mida skriptis kasutate. Võite kasutada Hämar avaldus muutujate deklareerimiseks järgmiselt:

Tume PSheet Nagu Tööleht, DSheet Nagu Tööleht
Hämar PvtCache Nagu PivotCache
Hämar Pvt-tabel Nagu PivotTable
Dim PvtRange Nagu Vahemik
Dim Last_Row Nagu Pikk, viimane_kol Nagu Pikk
Dim sht1 nagu Variant

Kasutate neid muutujaid järgmistel eesmärkidel.

  • PSheet: Sihtleht, kus VBA loob pivoti.
  • DSheet: Andmeleht.
  • PvtCache: Pivot-vahemälu hoiab pöördepunkti.
  • Pvt-tabel: Pivot tabeli objekt.
  • PvtRange: Pivoti andmevahemik.
  • Last_Row ja Last_Col: Viimati täidetud rida ja veerg andmelehel (DSheet).
  • Sht1: See muutuja on variant.

3. Hoiatuste ja sõnumite väljalülitamine

Tarbetud vead, hoiatused ja sõnumid aeglustavad teie VBA-koode. Selliseid sõnumeid maha surudes saate protsessi oluliselt kiirendada.

Kasutage järgmist koodi:

Peal Viga Jätka järgmisena

Koos Rakendus
.DisplayAlerts = Vale
.ScreenUpdating = Vale
LõppKoos

Kus:

  • Vea korral Jätka järgmisena: See klausel summutab kõik käitusaja vead.
  • Rakendus: Rakendus viitab MS Excelile.
  • Display Alerts: Atribuut DisplayAlerts määrab, kas hoiatusi näidata.
  • Ekraani värskendamine: See atribuut määrab, kas värskendada muudatusi reaalajas või alles siis, kui kood on töötamise lõpetanud.

Kui see kood käivitub, summutab see kõik märguanded, hoiatused ja sõnumid, mida Excel muidu näitaks. Saate DisplayAlerts ja ScreenUpdating parameetrid välja lülitada, määrates nende väärtused Vale.

Koodi lõpu poole saate need uuesti sisse lülitada, määrates väärtuseks as Tõsi.

4. Kustutage kõik olemasolevad Pivot-lehed

Uue liigendtabeli loomiseks on kaks võimalust. Esiteks kustutage olemasolev pöördeleht ja kasutage VBA-d, et luua uus leht pöörde salvestamiseks. Teise võimalusena võite pivoti hoidmiseks kasutada olemasolevat töölehte.

Selles juhendis loome pöördetabeli salvestamiseks uue pöördelehe.

The igaühele tsükkel läbib töövihiku iga lehe ja salvestab lehe nime sht1 muutuv. Lehe nime hoidmiseks võite kasutada mis tahes muutuja nime (sht1). Tsükkel liigub läbi kõik praeguse töövihiku lehed, otsides konkreetse nimega (Pivot).

Kui lehe nimi ühtib, kustutab see lehe ja liigub järgmisele lehele. Kui kood kontrollib kõiki lehti, väljub see tsüklist ja liigub koodi järgmisele osale, mis lisab uue lehe, Pivot.

Seda saate teha järgmiselt.

SestIgasht1sisseAktiivne tööraamat.Töölehed
Kui sht1.Nimi = "Pivot" Siis
sht1.Kustuta
LõppKui
Järgmine sht1

Töölehed. Lisama. Nimi = "Pivot"

5. Määratlege andmeallikas ja Pivot Sheets

Pivoti ja andmelehtede viidete salvestamiseks on oluline luua muutujad. Need töötavad otseteedena, millele saate kogu ülejäänud koodis viidata.

Set PSheet = Töölehed("Pivot")
Set DSheet = Töölehed("Andmed")

6. Tuvastage viimati kasutatud rida ja veerg

See koodi osa töötab dünaamiliselt, kuna see suurendab andmetes viimati täidetud rida ja veergu.

Last_Row = DSheet. Lahtrid (Read. Loendus, 1).Lõpp (xlUp).Rida
Last_Col = DSheet. Lahtrid (1, veerud. Loendus).Lõpp (xlToLeft).Veerg
Määra PvtRange = DSheet. Lahtrid (1, 1.Muuda suurust (viimane_rida, viimane_veer)

Kus:

  • Last_Row: Muutuja, mis salvestab viimati täidetud reanumbri, st 9995
  • Last_Col: Muutuja, mis salvestab viimati täidetud veeru numbri, st 21
  • PvtRange: PvtRange viitab kogu pivoti andmevahemikule

7. Looge Pivot Cache ja Pivot Table

Pivot-vahemälu hoiab pöördetabelit; seetõttu peate enne pivot-tabeli loomist looma vahemälu. Pivot-lehel pivot-vahemälu loomiseks peate kasutama VBA süntaksiviiteid.

Pivot-vahemällu viidates peate looma pivot-tabeli. Pivot-tabeli osana saate määratleda lehe, lahtri viite ja liigendtabeli nime.

Määra PvtCache = ActiveWorkbook. PivotCaches. Loo (SourceType:=xlDatabase, SourceData:=PvtRange).CreatePivotTable (TableDestination:=PSheet. Lahtrid (2, 2), tabelinimi:="MUODemoTable")
Määra PvtTable = PvtCache. CreatePivotTable (TableDestination:=PSheet. Lahtrid (1, 1), tabelinimi:="MUODemoTable")

Kus:

  • Aktiivne töövihik: Praegune töövihik, kus teil on andme- ja liigendleht.
  • PivotCaches. Loo: Pivot-vahemälu loomiseks vaikesüntaks.
  • Allika tüüp: Kuna teil on töövihikus olevad andmed olemas, saate need määratleda järgmiselt xlAndmebaas. Mõned muud võimalused hõlmavad xlKonsolideerimine, xlVäline, või xlPivotTable.
  • Lähteandmed: Lähteandmetena saate viidata eelmisele pöördevahemikule.
  • Loo PivotTable: Vaikimisi käsk pivot-tabeli loomiseks.
  • Tabeli sihtkoht: Peate määrama lehe ja lahtri viited, kuhu soovite pivoti luua.
  • Tabeli nimi: Määrake liigendtabeli nimi.
  • Loo PivotTable: Vaikimisi käsk liigendtabeli loomiseks pöördevahemälus.

8. Sisesta read, veerud, filtrid ja väärtused

Kuna liigendtabel on valmis, peate alustama parameetrite lisamist filtrites, ridades, veergudes ja koondamisväärtustes. Võite kasutada VBA-d pöördeväljad käsk, et alustada detailide deklareerimist.

Filtri väärtuste lisamiseks tehke järgmist.

ActiveSheetiga. PivotTables("MUODemoTable").PivotFields("Piirkond")
.Orientation = xlPageField
LõppKoos

Rea väärtuste lisamiseks tehke järgmist.

ActiveSheetiga. PivotTables("MUODemoTable").PivotFields("Alamkategooria")
.Orientation = xlRowField
LõppKoos

Veeru väärtuste lisamiseks tehke järgmist.

ActiveSheetiga. PivotTables("MUODemoTable").PivotFields("osariik")
.Orientation = xlColumnField
LõppKoos

Koondväärtuste lisamiseks tehke järgmist.

ActiveSheetiga. PivotTables("MUODemoTable").PivotFields("Müük")
.Orientation = xlDataField
.Funktsioon = xlSum
LõppKoos

Oluline on märkida, et peate viitama aktiivlehele (liigendtabelile), millele järgneb liigendtabeli nimi ja muutuja nimi. Kui peate lisama filtri(d), rida(d) ja veeru(d), saate lülituda erinevate süntaksite vahel, mis hõlmavad järgmist.

  • xlPageField: Filtrite lisamiseks.
  • xlRowField: Ridade lisamiseks.
  • xlRowField: Veergude lisamiseks.

Lõpuks saate kasutada xlDataField käsk väärtuste liitmike arvutamiseks. Saate kasutada muid koondfunktsioone, nagu xlSum, xlAverage, xlCount, xlMax, xlMin ja xlProduct.

9. Automaatsete pöördepunktide loomiseks käivitage Exceli VBA-kood

Lõpuks, kui kogu programm on valmis, saate selle käivitada vajutades F5 või klõpsates nuppu mängida nuppu. Kui lähete oma töövihikus tagasi Pivot-lehe juurde, näete, et uus liigendtabel on ülevaatamiseks valmis.

Kui soovite näha koodikäskluse samm-sammult täitmist rida-realt, võite navigeerida koodiredaktorisse ja vajutada F8 mitu korda. Nii näete, kuidas iga koodirida töötab ja kuidas VBA teie pöörded automaatselt loob.

Pivot-tabelite automaatse kodeerimise õppimine

Pivotid ei piirdu ainult MS Exceliga. Programmeerimiskeeled, nagu Python, võimaldavad teil luua optimeeritud pöördeid vaid mõne koodireaga.

Andmete optimeerimine ei saa olla lihtsam kui see. Saate Pythonis tõhusalt oma käske valida ja hõlpsalt luua sarnase Exceli-laadse pöördestruktuuri.