Vrtilne tabele v Excelu so ključne za lažje razumevanje in razumevanje podatkov. Vrtilna tabela lahko zgosti in zdrobi podatke v smiselne strukture. Uporabniki MS Excel so jih na široko sprejeli v podatkovni industriji.

Ali ste vedeli, da lahko avtomatizirate vrtilne tabele v Excelu in jih ustvarite z enim klikom? MS Excel se dobro integrira z VBA in je postal odlično orodje za avtomatizacijo ponavljajočih se opravil.

Evo, kako lahko avtomatizirate vrtilno tabelo z makrom v MS Excel VBA.

Uporabite nabor podatkov za vadbo

Lahko prenesete in uporabite lutko nabor podatkov iz Tableau da sledite skriptu VBA v tem priročniku. Koda VBA bo delovala s katerim koli drugim naborom podatkov, z nekaj osnovnimi prilagoditvami. Preden začnete, se prepričajte, da imate omogočene makre v Excelovem delovnem zvezku.

Obstaja nekaj bistvenih stolpcev, ki jih lahko uporabite v vrtilni tabeli. Če želite razumeti nianse in končno strukturo tabele, lahko ročno ustvarite osnovno vrtilno tabelo z naslednjimi elementi:

instagram viewer
  • Filter: Regija
  • Vrstice: Podkategorija
  • Stolpci: Država
  • Vrednote: Prodaja

Končno vrtišče mora izgledati takole:

Lahko pa pustite, da VBA to naredi samodejno, namesto da bi ga pripravljal ročno.

Kako samodejno ustvariti vrtilne tabele v Excelu

Če želite avtomatizirati vrtilne tabele z VBA, odprite novo Excelovo datoteko in preimenujte liste, kot sledi:

  • Prvi list: Makro
  • Drugi list: podatki

The Makro list vsebuje makro skript, medtem ko podatki list vsebuje vaše podatke. Na list makra lahko vstavite poljubno obliko in ji dodelite makro. Z desno miškino tipko kliknite obliko in kliknite Dodeli makro.

V naslednjem pogovornem oknu kliknite ime vašega makra in kliknite V redu. Ta korak dodeli makro obliki.

1. Odprite urejevalnik kodiranja Excel VBA

Pritisnite Alt + F11 da odprete urejevalnik kode. Ko ste v urejevalniku kode, z desno miškino tipko kliknite ime datoteke in nato Vstavi in Modul. Pomembno si je zapomniti, da boste v modulu napisali vso kodo VBA, preden jo boste zagnali.

Priporočljivo je, da uporabite ime modula, ki ustreza namenu kode. Ker je to predstavitev, lahko ime modula določite na naslednji način:

sub pivot_demo()

Ime modula se konča z End Sub, ki je končni ukaz modula:

Konec Sub

2. Deklarirajte spremenljivke

Znotraj modula začnite z deklaracijo spremenljivk za shranjevanje nekaterih uporabniško določenih vrednosti, ki jih boste uporabili v skriptu. Lahko uporabite Dim stavek za deklaracijo spremenljivk, kot sledi:

Dim PSheet Kot Delovni list, DSheet Kot Delovni list
Dim PvtCache Kot PivotCache
Dim PvtTable Kot Vrteča miza
Dim PvtRange Kot Razpon
Zatemni zadnjo_vrstico Kot Dolgo, Last_Col Kot dolga
Dim sht1 kot Različica

Te spremenljivke boste uporabili za naslednje:

  • PSsheet: Ciljni list, kjer bo VBA ustvaril vrtišče.
  • Dsheet: Podatkovni list.
  • PvtCache: Vrtilni predpomnilnik drži vrtišče.
  • PvtTable: Objekt vrtilne tabele.
  • PvtRange: Obseg podatkov za vrtišče.
  • Zadnja_vrstica in zadnji_stolpec: Zadnja izpolnjena vrstica in stolpec v podatkovnem listu (DSheet).
  • Sht1: Ta spremenljivka je različica.

3. Zatiranje opozoril in sporočil

Nepotrebne napake, opozorila in sporočila upočasnijo vaše kode VBA. Z zatiranjem takšnih sporočil lahko proces precej pospešite.

Uporabite naslednjo kodo:

Vklopljeno Napaka Nadaljuj naprej

z Aplikacija
.DisplayAlerts = False
.ScreenUpdating = False
Konecz

Kje:

  • Ob napaki Nadaljuj naprej: Ta člen onemogoča morebitne napake med izvajanjem.
  • Uporaba: Aplikacija se nanaša na MS Excel.
  • DisplayAlerts: Lastnost DisplayAlerts določa, ali naj se prikažejo opozorila.
  • ScreenUpdating: Ta lastnost določa, ali naj se spremembe posodobijo v realnem času ali šele, ko se koda konča z izvajanjem.

Ko se ta koda izvaja, zatre vsa opozorila, opozorila in sporočila, ki bi jih Excel sicer prikazal. Parametra DisplayAlerts in ScreenUpdating lahko izklopite tako, da njune vrednosti nastavite na False.

Proti koncu kode jih lahko znova vklopite tako, da nastavite vrednost kot Prav.

4. Izbrišite vse obstoječe vrtilne liste

Če želite ustvariti novo vrtilno tabelo, imate dve možnosti. Najprej izbrišite obstoječi vrtilni list in uporabite VBA, da ustvarite nov list za shranjevanje vrtilnega lista. Lahko pa uporabite obstoječi delovni list, da zadržite vrtišče.

V tem priročniku ustvarimo nov vrtilni list za shranjevanje vrtilne tabele.

The za vsakogar zanka kroži po vsakem listu v delovnem zvezku in shrani ime lista v sht1 spremenljivka. Za shranjevanje imena lista lahko uporabite katero koli ime spremenljivke (sht1). Zanka kroži skozi vsak list v trenutnem delovnem zvezku in išče enega z določenim imenom (Vrtenje).

Ko se ime lista ujema, izbriše list in se premakne na naslednji list. Ko koda preveri vse liste, zapusti zanko in se premakne na naslednji del kode, ki doda nov list, Vrtenje.

Takole lahko to storite:

ZaVsaksht1notriActiveWorkbook.Delovni listi
Če je sht1.Name = "Vrtenje" Potem
sht1.Izbriši
Konecče
Naslednji st1

Delovni listi. Dodaj. Ime = "Vrtenje"

5. Določite vir podatkov in vrtilne liste

Nujno je ustvariti spremenljivke za shranjevanje sklicev vrtilnih in podatkovnih listov. Te delujejo kot bližnjice, na katere se lahko sklicujete v preostalem delu kode.

Nastavite PSheet = Delovni listi("Vrtenje")
Nastavi DSheet = Worksheets("podatki")

6. Določite zadnjo uporabljeno vrstico in stolpec

Ta del kode deluje dinamično, saj poveča zadnjo izpolnjeno vrstico in stolpec v podatkih.

Zadnja_vrstica = DSheet. Celice (vrstice. Štetje, 1).Konec (xlUp).Vrstica
Last_Col = DSheet. Celice (1, stolpci. Count).End (xlToLeft).Column
Set PvtRange = DSheet. Celice (1, 1).Spremeni velikost (zadnja_vrstica, zadnji_stolpec)

Kje:

  • Zadnja_vrstica: Spremenljivka za shranjevanje zadnje izpolnjene številke vrstice, tj. 9995
  • Zadnji_stolpec: Spremenljivka za shranjevanje zadnje izpolnjene številke stolpca, tj. 21
  • PvtRange: PvtRange se sklicuje na celoten obseg podatkov za vrtišče

7. Ustvarite vrtilni predpomnilnik in vrtilno tabelo

Vrtilni predpomnilnik hrani vrtilno tabelo; zato morate pred ustvarjanjem vrtilne tabele ustvariti predpomnilnik. Če želite ustvariti vrtilni predpomnilnik znotraj vrtilnega lista, morate uporabiti sintaksne reference VBA.

S sklicevanjem na vrtilni predpomnilnik morate ustvariti vrtilno tabelo. Kot del vrtilne tabele lahko definirate list, sklic na celico in ime vrtilne tabele.

Nastavite PvtCache = ActiveWorkbook. PivotCaches. Ustvari (SourceType:=xlDatabase, SourceData:=PvtRange).CreatePivotTable (TableDestination:=PSheet. Celice (2, 2), ImeTabele:="MUODemoTable")
Nastavite PvtTable = PvtCache. Ustvari vrtilno tabelo (TableDestination:=PSheet. Celice (1, 1), ImeTabele:="MUODemoTable")

Kje:

  • ActiveWorkbook: Trenutni delovni zvezek, v katerem imate podatkovni in vrtilni list.
  • PivotCaches. Ustvari: Privzeta sintaksa za ustvarjanje vrtilnega predpomnilnika.
  • SourceType: Ker imate podatke v delovnem zvezku, jih lahko definirate kot xlDatabase. Nekatere druge možnosti vključujejo xlUtrjevanje, xlZunanji, oz xlVrtilna tabela.
  • Izvorni podatki: Kot izvorne podatke se lahko sklicujete na prejšnji vrtilni obseg.
  • Ustvari vrtilno tabelo: Privzeti ukaz za ustvarjanje vrtilne tabele.
  • TableDestination: Določiti morate sklice na list in celice, kjer želite ustvariti vrtišče.
  • TableName: Določite ime vrtilne tabele.
  • Ustvari vrtilno tabelo: Privzeti ukaz za ustvarjanje vrtilne tabele v vrtilnem predpomnilniku.

8. Vstavite vrstice, stolpce, filtre in vrednosti

Ker je vrtilna tabela pripravljena, morate začeti dodajati parametre znotraj filtrov, vrstic, stolpcev in vrednosti združevanja. Lahko uporabite VBA vrtilna polja ukaz za začetek deklariranja podrobnosti.

Če želite dodati vrednosti filtra:

Z ActiveSheet. Vrtilne tabele ("MUODemoTable").PivotFields("Regija")
.Orientation = xlPageField
Konecz

Če želite dodati vrednosti vrstic:

Z ActiveSheet. Vrtilne tabele ("MUODemoTable").PivotFields("Podkategorija")
.Orientation = xlRowField
Konecz

Če želite dodati vrednosti stolpcev:

Z ActiveSheet. Vrtilne tabele ("MUODemoTable").PivotFields("Država")
.Orientation = xlColumnField
Konecz

Če želite dodati vrednosti združevanja:

Z ActiveSheet. Vrtilne tabele ("MUODemoTable").PivotFields("Prodaja")
.Orientation = xlDataField
.funkcija = xlSum
Konecz

Pomembno je upoštevati, da se morate sklicevati na aktivni list (vrtilni list), ki mu sledita ime vrtilne tabele in ime spremenljivke. Ko morate dodati filter(e), vrstico(e) in stolpec(e), lahko preklapljate med različnimi skladnjami, ki vključujejo naslednje:

  • xlPageField: Za dodajanje filtrov.
  • xlRowField: Za dodajanje vrstic.
  • xlRowField: Za dodajanje stolpcev.

Končno lahko uporabite xlDataField ukaz za izračun združevanja vrednosti. Uporabite lahko druge agregatne funkcije, kot so xlSum, xlAverage, xlCount, xlMax, xlMin in xlProduct.

9. Izvajanje kode Excel VBA za ustvarjanje samodejnih vrtilcev

Končno, ko je celoten program pripravljen, ga lahko zaženete s pritiskom na F5 ali s klikom na igrati gumb. Ko se vrnete na vrtilni list v delovnem zvezku, boste videli, da je nova vrtilna tabela pripravljena za pregled.

Če želite videti korak za korakom izvedbo ukaza kode vrstico za vrstico, se lahko pomaknete do urejevalnika kode in pritisnete F8 nekajkrat. Na ta način si lahko ogledate, kako deluje vsaka vrstica kode in kako VBA samodejno ustvari vaša vrtišča.

Učenje samodejnega kodiranja vrtilnih tabel

Pivoti niso omejeni samo na MS Excel. Programski jeziki, kot je Python, vam omogočajo ustvarjanje optimiziranih vrtišč s samo nekaj vrsticami kode.

Optimizacija podatkov ne more biti enostavnejša od tega. V Pythonu lahko učinkovito izbirate svoje ukaze in z lahkoto dosežete podobno vrtilno strukturo, podobno Excelu.