Pivottabeller i Excel er afgørende for at gøre data nemmere at forstå og forstå. En pivottabel kan kondensere og knuse data til meningsfulde strukturer. MS Excel-brugere har bredt adopteret dem inden for dataindustrien.

Vidste du, at du kan automatisere dine pivottabeller i Excel og oprette dem med et enkelt klik? MS Excel integrerer godt med VBA og er blevet et fremragende værktøj til at automatisere gentagne opgaver.

Sådan kan du automatisere en pivottabel med en makro i MS Excel VBA.

Brug et øvelsesdatasæt

Du kan downloade og bruge en dummy datasæt fra Tableau at følge VBA-scriptet i denne vejledning. VBA-koden fungerer med ethvert andet datasæt, med nogle få grundlæggende justeringer. Før du starter, skal du sikre dig, at du har aktiverede makroer i din Excel-projektmappe.

Der er et par vigtige kolonner, som du kan bruge i pivottabellen. For at forstå bordets nuancer og endelige struktur kan du oprette en grundlæggende pivottabel manuelt med følgende elementer:

  • Filter: Område
  • Rækker: Underkategori
  • Kolonner: Stat
  • Værdier: Salg
instagram viewer

Endepivoten skal se ud som følger:

Du kan dog lade VBA gøre det automatisk i stedet for at forberede det manuelt.

Sådan opretter du automatisk pivottabeller i Excel

For at automatisere dine pivottabeller med VBA skal du åbne en ny Excel-fil og omdøbe arkene som følger:

  • Første ark: Makro
  • Andet ark: Data

Det Makro arket indeholder makroscriptet, mens Data arket indeholder dine data. På makroarket kan du indsætte enhver form efter eget valg og tildele makroen til den. Højreklik på formen, og klik på Tildel makro.

I den følgende dialogboks skal du klikke på navnet på din makro og klikke på OK. Dette trin tildeler makroen til formen.

1. Åbn Excel VBA Coding Editor

Trykke Alt + F11 for at åbne kodeeditoren. Når du er i kodeeditoren, skal du højreklikke på filnavnet efterfulgt af Indsæt og modul. Det er vigtigt at huske, at du vil skrive al VBA-kode i et modul, før du udfører det.

Det er en god praksis at bruge et modulnavn, der passer til formålet med koden. Da dette er en demo, kan du definere modulnavnet som følger:

sub pivot_demo()

Modulnavnet slutter med Slut Sub, som er afslutningskommandoen for et modul:

Ende Sub

2. Angiv variabler

Inden for modulet skal du starte med at erklære variabler for at gemme nogle brugerdefinerede værdier, du vil bruge i scriptet. Du kan bruge Svag sætning for at erklære variable som følger:

Dim PSark Som Arbejdsark, DSheet Som Arbejdsark
Dæmp PvtCache Som PivotCache
Dim PvtTable Som Pivottabel
Dim PvtRange Som Rækkevidde
Dim Last_Row Som Lang, sidste_kol Som Lang
Dæmp sht1 som Variant

Du skal bruge disse variable til følgende:

  • PSark: Destinationsarket, hvor VBA vil oprette en pivot.
  • DSark: Databladet.
  • PvtCache: En pivot-cache holder pivoten.
  • PvtTabel: Pivottabelobjektet.
  • PvtRange: Et dataområde for pivoten.
  • Last_Row og Last_Col: Sidst udfyldte række og kolonne i dataarket (DSheet).
  • Sht1: Denne variabel er en variant.

3. Undertryk advarsler og meddelelser

Unødvendige fejl, advarsler og meddelelser sænker dine VBA-koder. Ved at undertrykke sådanne beskeder kan du fremskynde processen betydeligt.

Brug følgende kode:

Fejl Genoptag næste

Med Ansøgning
.DisplayAlerts = Falsk
.Skærmopdatering = Falsk
EndeMed

Hvor:

  • Ved fejlgenoptag næste: Denne klausul undertrykker alle køretidsfejl.
  • Ansøgning: Ansøgning refererer til MS Excel.
  • DisplayAlerts: Egenskaben DisplayAlerts definerer, om der skal vises advarsler.
  • Skærmopdatering: Denne egenskab definerer, om ændringer skal opdateres i realtid eller først, når koden er færdig med at køre.

Når denne kode kører, undertrykker den alle advarsler, advarsler og meddelelser, som Excel ellers ville vise. Du kan deaktivere DisplayAlerts og ScreenUpdating-parametre ved at indstille deres værdier til Falsk.

Mod slutningen af ​​koden kan du tænde dem igen ved at indstille værdien som Rigtigt.

4. Slet alle eksisterende pivotark

For at oprette en ny pivottabel har du to muligheder. Først skal du slette det eksisterende pivotark og bruge VBA til at oprette et nyt ark til at gemme pivoten. Alternativt kan du bruge et eksisterende regneark til at holde pivoten.

Lad os i denne vejledning oprette et nyt pivotark til at gemme pivottabellen.

Det for hver loop cykler gennem hvert ark i projektmappen og gemmer arknavnet i sht1 variabel. Du kan bruge et hvilket som helst variabelnavn (sht1) til at holde arknavnet. Løkken går gennem hvert ark i den aktuelle projektmappe og leder efter et med det specifikke navn (Omdrejningspunkt).

Når arknavnet matcher, sletter det arket og flytter til det næste ark. Når koden kontrollerer alle arkene, forlader den løkken og flytter til den næste del af koden, som tilføjer et nyt ark, Omdrejningspunkt.

Sådan kan du gøre det:

TilHversht1IAktiv arbejdsbog.Arbejdsark
Hvis sht1.Name = "Omdrejningspunkt" Derefter
sht1.Slet
EndeHvis
Næste sht1

Arbejdsark. Tilføje. Navn = "Omdrejningspunkt"

5. Definer datakilde og pivotark

Det er vigtigt at oprette variabler til at gemme referencerne til pivot- og databladene. Disse fungerer som genveje, som du kan referere til i resten af ​​koden.

Indstil PSheet = Arbejdsark("Omdrejningspunkt")
Indstil DSheet = Arbejdsark("Data")

6. Identificer den sidst brugte række og kolonne

Denne del af koden fungerer dynamisk, da den udvider den sidst udfyldte række og kolonne i dataene.

Sidste_række = DSark. Celler (rækker. Tæl, 1). Slut (xlUp). Række
Last_Col = DSheet. Celler (1, kolonner. Tæl). Slut (xlToLeft). Kolonne
Sæt PvtRange = DSheet. Celler(1, 1). Ændr størrelse (Sidste_række, Sidste_kol.)

Hvor:

  • Sidste_række: Variabel til at gemme det sidst udfyldte rækkenummer, dvs. 9995
  • Sidste_kol.: Variabel til at gemme det sidst udfyldte kolonnenummer, dvs. 21
  • PvtRange: PvtRange refererer til hele dataområdet for pivoten

7. Opret en pivotcache og en pivottabel

En pivot-cache holder pivottabellen; derfor skal du oprette en cache, før du opretter en pivottabel. Du skal bruge VBA's syntaksreferencer for at lave pivot-cachen i pivot-arket.

Ved at referere til pivot-cachen skal du oprette en pivottabel. Som en del af pivottabellen kan du definere arket, cellereferencen og navnet på pivottabellen.

Indstil PvtCache = ActiveWorkbook. PivotCaches. Opret (SourceType:=xlDatabase, SourceData:=PvtRange).CreatePivotTable (TableDestination:=PSheet. Celler (2, 2), Tabelnavn:="MUODEmoTable")
Indstil PvtTable = PvtCache. CreatePivotTable (TabelDestination:=PSark. Celler (1, 1), Tabelnavn:="MUODEmoTable")

Hvor:

  • ActiveWorkbook: Den aktuelle projektmappe, hvor du har data- og pivot-arket.
  • PivotCaches. Skab: Standardsyntaks til at oprette en pivot-cache.
  • Kildetype: Da du har dataene i projektmappen, kan du definere dem som xldatabase. Nogle andre muligheder omfatter xlKonsolidering, xlEkstern, eller xlPivottabel.
  • Kildedata: Du kan referere til det tidligere pivotområde som kildedata.
  • Opret pivottabel: Standardkommando til at oprette pivottabellen.
  • Borddestination: Du skal angive arket og cellereferencerne, hvor du vil oprette pivoten.
  • Tabelnavn: Angiv et pivottabelnavn.
  • Opret pivottabel: Standardkommando til at oprette pivottabellen i pivotcachen.

8. Indsæt rækker, kolonner, filtre og værdier

Da pivottabellen er klar, skal du begynde at tilføje parametrene i filtrene, rækkerne, kolonnerne og aggregeringsværdierne. Du kan bruge VBA drejefelter kommando for at begynde at angive detaljerne.

Sådan tilføjer du filterværdier:

Med ActiveSheet. Pivottabeller("MUODEmoTable").Pivotfelter("Område")
.Orientation = xlPageField
EndeMed

Sådan tilføjer du rækkeværdier:

Med ActiveSheet. Pivottabeller("MUODEmoTable").Pivotfelter("Underkategori")
.Orientation = xlRowField
EndeMed

Sådan tilføjer du kolonneværdier:

Med ActiveSheet. Pivottabeller("MUODEmoTable").Pivotfelter("Stat")
.Orientation = xlColumnField
EndeMed

Sådan tilføjer du aggregeringsværdier:

Med ActiveSheet. Pivottabeller("MUODEmoTable").Pivotfelter("Salg")
.Orientation = xlDataField
.Fungere = xlSum
EndeMed

Det er vigtigt at bemærke, at du skal referere til det aktive ark (pivotark), efterfulgt af pivottabelnavnet og variabelnavnet. Når du har brug for at tilføje filteret(e), række(r) og kolonne(r), kan du skifte mellem forskellige syntakser, som inkluderer følgende:

  • xlPageField: For at tilføje filtre.
  • xlRowField: For at tilføje rækker.
  • xlRowField: For at tilføje kolonner.

Endelig kan du bruge xlDataField kommando til at beregne værdisammenlægningerne. Du kan bruge andre aggregerede funktioner som xlSum, xlAverage, xlCount, xlMax, xlMin og xlProduct.

9. Kørsel af Excel VBA-koden for at oprette automatiske pivoter

Til sidst, når hele programmet er klar, kan du køre det ved at trykke på F5 eller ved at klikke på Spil knap. Når du går tilbage til pivot-arket i din projektmappe, vil du se, at en ny pivottabel er klar, som du kan gennemgå.

Hvis du vil se en trin-for-trin udførelse af, hvordan kodekommandoen udspiller sig linje for linje, kan du navigere til kodeeditoren og trykke på F8 flere gange. På denne måde kan du se, hvordan hver linje kode fungerer, og hvordan VBA opretter dine pivoter automatisk.

Lær at kode pivottabeller automatisk

Pivoter er ikke begrænset til kun MS Excel. Programmeringssprog som Python giver dig mulighed for at skabe optimerede pivotpunkter med blot et par linjer kode.

Dataoptimering kan ikke være nemmere end dette. Du kan effektivt vælge og vælge dine kommandoer i Python og opnå en lignende Excel-lignende pivotstruktur med lethed.