Οι συγκεντρωτικοί πίνακες στο Excel είναι ζωτικής σημασίας για την ευκολότερη κατανόηση και κατανόηση των δεδομένων. Ένας συγκεντρωτικός πίνακας μπορεί να συμπυκνώσει και να συμπυκνώσει δεδομένα σε σημαντικές δομές. Οι χρήστες του MS Excel τα έχουν υιοθετήσει ευρέως στη βιομηχανία δεδομένων.

Γνωρίζατε ότι μπορείτε να αυτοματοποιήσετε τους συγκεντρωτικούς πίνακες στο Excel και να τους δημιουργήσετε με ένα μόνο κλικ; Το MS Excel ενσωματώνεται καλά με το VBA και έχει γίνει ένα εξαιρετικό εργαλείο για την αυτοματοποίηση επαναλαμβανόμενων εργασιών.

Δείτε πώς μπορείτε να αυτοματοποιήσετε έναν συγκεντρωτικό πίνακα με μια μακροεντολή στο MS Excel VBA.

Χρησιμοποιήστε ένα σύνολο δεδομένων πρακτικής

Μπορείτε να κάνετε λήψη και να χρησιμοποιήσετε ένα ομοίωμα σύνολο δεδομένων από το Tableau για να ακολουθήσετε τη δέσμη ενεργειών VBA σε αυτόν τον οδηγό. Ο κώδικας VBA θα λειτουργήσει με οποιοδήποτε άλλο σύνολο δεδομένων, με μερικές βασικές τροποποιήσεις. Πριν ξεκινήσετε, βεβαιωθείτε ότι έχετε ενεργοποιημένες μακροεντολές στο βιβλίο εργασίας του Excel.

instagram viewer

Υπάρχουν μερικές βασικές στήλες που μπορείτε να χρησιμοποιήσετε στον συγκεντρωτικό πίνακα. Για να κατανοήσετε τις αποχρώσεις και την τελική δομή του πίνακα, μπορείτε δημιουργήστε έναν βασικό συγκεντρωτικό πίνακα με μη αυτόματο τρόπο με τα ακόλουθα στοιχεία:

  • Φίλτρο: Περιοχή
  • Σειρές: Υποκατηγορία
  • Στήλες: κατάσταση
  • Αξίες: Εκπτώσεις

Η τελική περιστροφή θα πρέπει να φαίνεται ως εξής:

Ωστόσο, μπορείτε να αφήσετε τη VBA να το κάνει αυτόματα αντί να το προετοιμάσει χειροκίνητα.

Πώς να δημιουργήσετε αυτόματα συγκεντρωτικούς πίνακες στο Excel

Για να αυτοματοποιήσετε τους συγκεντρωτικούς πίνακες σας με VBA, ανοίξτε ένα νέο αρχείο Excel και μετονομάστε τα φύλλα ως εξής:

  • Πρώτο φύλλο: Μακροεντολή
  • Δεύτερο φύλλο: Δεδομένα

ο Μακροεντολή το φύλλο περιέχει το σενάριο μακροεντολής, ενώ το Δεδομένα το φύλλο περιέχει τα δεδομένα σας. Στο φύλλο μακροεντολής, μπορείτε να εισαγάγετε οποιοδήποτε σχήμα της επιλογής σας και να του αντιστοιχίσετε τη μακροεντολή. Κάντε δεξί κλικ στο σχήμα και κάντε κλικ στο Assign Macro.

Στο παρακάτω παράθυρο διαλόγου, κάντε κλικ στο όνομα της μακροεντολής σας και κάντε κλικ στο ΟΚ. Αυτό το βήμα εκχωρεί τη μακροεντολή στο σχήμα.

1. Ανοίξτε το Excel VBA Coding Editor

Τύπος Alt + F11 για να ανοίξετε το πρόγραμμα επεξεργασίας κώδικα. Μόλις μπείτε στο πρόγραμμα επεξεργασίας κώδικα, κάντε δεξί κλικ στο όνομα του αρχείου και στη συνέχεια Εισάγετε και Μονάδα μέτρησης. Είναι σημαντικό να θυμάστε ότι θα γράψετε όλο τον κώδικα VBA σε μια ενότητα πριν την εκτελέσετε.

Είναι καλή πρακτική να χρησιμοποιείτε ένα όνομα λειτουργικής μονάδας που συνάδει με τον σκοπό του κώδικα. Επειδή πρόκειται για επίδειξη, μπορείτε να ορίσετε το όνομα της μονάδας ως εξής:

sub pivot_demo()

Το όνομα της μονάδας τελειώνει με End Sub, που είναι η τελική εντολή μιας ενότητας:

Τέλος Υπο

2. Δηλώστε μεταβλητές

Εντός της λειτουργικής μονάδας, ξεκινήστε δηλώνοντας μεταβλητές για να αποθηκεύσετε ορισμένες τιμές που ορίζονται από το χρήστη που θα χρησιμοποιήσετε στο σενάριο. Μπορείτε να χρησιμοποιήσετε το Αμυδρός δήλωση για τη δήλωση μεταβλητών, ως εξής:

Θαμπό φύλλο P.S Οπως και Φύλλο εργασίας, DSsheet Οπως και Φύλλο εργασίας
Dim PvtCache Οπως και PivotCache
Dim PvtTable Οπως και Συγκεντρωτικός πίνακας
Dim PvtRange Οπως και Εύρος
Dim Last_Row Οπως και Long, Last_Col Οπως και Μακρύς
Dim sht1 όπως και Παραλαγή

Θα χρησιμοποιήσετε αυτές τις μεταβλητές για τα εξής:

  • Psheet: Το φύλλο προορισμού, όπου το VBA θα δημιουργήσει ένα pivot.
  • DSsheet: Το φύλλο δεδομένων.
  • PvtCache: Μια συγκεντρωτική κρυφή μνήμη συγκεντρώνει το pivot.
  • Πίνακας Pvt: Το αντικείμενο του πίνακα περιστροφής.
  • Εύρος Pvt: Ένα εύρος δεδομένων για το pivot.
  • Last_Row και Last_Col: Τελευταία συμπληρωμένη γραμμή και στήλη στο φύλλο δεδομένων (DSsheet).
  • Sht1: Αυτή η μεταβλητή είναι μια παραλλαγή.

3. Καταργήστε τις προειδοποιήσεις και τα μηνύματα

Τα περιττά σφάλματα, οι προειδοποιήσεις και τα μηνύματα επιβραδύνουν τους κωδικούς VBA σας. Με την καταστολή τέτοιων μηνυμάτων, μπορείτε να επιταχύνετε σημαντικά τη διαδικασία.

Χρησιμοποιήστε τον ακόλουθο κώδικα:

Επί Λάθος Συνέχιση Επόμενο

Με Εφαρμογή
.DisplayAlerts = Ψευδής
.Ενημέρωση οθόνης = Ψευδής
ΤέλοςΜε

Οπου:

  • On Error Resume Next: Αυτή η ρήτρα καταστέλλει τυχόν σφάλματα χρόνου εκτέλεσης.
  • Εφαρμογή: Η εφαρμογή αναφέρεται στο MS Excel.
  • DisplayAlerts: Η ιδιότητα DisplayAlerts καθορίζει εάν θα εμφανίζονται ειδοποιήσεις.
  • Ενημέρωση οθόνης: Αυτή η ιδιότητα καθορίζει εάν θα ενημερώνονται οι αλλαγές σε πραγματικό χρόνο ή μόνο αφού ολοκληρωθεί η εκτέλεση του κώδικα.

Όταν εκτελείται αυτός ο κώδικας, καταστέλλει τυχόν ειδοποιήσεις, προειδοποιήσεις και μηνύματα που θα έδειχνε διαφορετικά το Excel. Μπορείτε να απενεργοποιήσετε τις παραμέτρους DisplayAlerts και ScreenUpdating ορίζοντας τις τιμές τους σε Ψευδής.

Προς το τέλος του κωδικού, μπορείτε να τους ενεργοποιήσετε ξανά ορίζοντας την τιμή ως Αληθής.

4. Διαγράψτε τυχόν υπάρχοντα συγκεντρωτικά φύλλα

Για να δημιουργήσετε έναν νέο συγκεντρωτικό πίνακα, έχετε δύο επιλογές. Αρχικά, διαγράψτε το υπάρχον φύλλο περιστροφής και χρησιμοποιήστε το VBA για να δημιουργήσετε ένα νέο φύλλο για να αποθηκεύσετε το συγκεντρωτικό φύλλο. Εναλλακτικά, μπορείτε να χρησιμοποιήσετε ένα υπάρχον φύλλο εργασίας για να κρατήσετε το pivot.

Σε αυτόν τον οδηγό, ας δημιουργήσουμε ένα νέο συγκεντρωτικό φύλλο για την αποθήκευση του συγκεντρωτικού πίνακα.

ο για κάθε Ο βρόχος κυκλώνει σε κάθε φύλλο μέσα στο βιβλίο εργασίας και αποθηκεύει το όνομα του φύλλου μέσα στο sht1 μεταβλητός. Μπορείτε να χρησιμοποιήσετε οποιοδήποτε όνομα μεταβλητής (sht1) για να κρατήσετε το όνομα του φύλλου. Ο βρόχος κυκλοφορεί σε κάθε φύλλο του τρέχοντος βιβλίου εργασίας, αναζητώντας ένα με το συγκεκριμένο όνομα (Αξονας περιστροφής).

Όταν το όνομα του φύλλου ταιριάζει, διαγράφει το φύλλο και μετακινείται στο επόμενο φύλλο. Μόλις ο κώδικας ελέγξει όλα τα φύλλα, βγαίνει από τον βρόχο και μετακινείται στο επόμενο μέρος του κώδικα, το οποίο προσθέτει ένα νέο φύλλο, Αξονας περιστροφής.

Δείτε πώς μπορείτε να το κάνετε:

ΓιαΚαθεsht1ΣεActiveWorkbook.Φύλλα εργασίας
Αν sht1.Όνομα = "Αξονας περιστροφής" Επειτα
sht1.Διαγράφω
ΤέλοςΑν
Επόμενο sht1

Φύλλα εργασίας. Προσθήκη. Όνομα = "Αξονας περιστροφής"

5. Ορίστε την πηγή δεδομένων και τα συγκεντρωτικά φύλλα

Είναι απαραίτητο να δημιουργήσετε μεταβλητές για την αποθήκευση των παραπομπών των Φύλλων Συγκεντρωτική και Δεδομένα. Αυτές λειτουργούν ως συντομεύσεις, τις οποίες μπορείτε να αναφέρετε σε όλο τον υπόλοιπο κώδικα.

Ρύθμιση PSsheet = Φύλλα εργασίας("Αξονας περιστροφής")
Ορισμός DSsheet = φύλλα εργασίας ("Δεδομένα")

6. Προσδιορίστε τη γραμμή και τη στήλη που χρησιμοποιήθηκε τελευταία

Αυτό το τμήμα του κώδικα λειτουργεί δυναμικά, καθώς μεγεθύνει την τελευταία συμπληρωμένη γραμμή και στήλη μέσα στα δεδομένα.

Last_Row = DSsheet. Κελιά (Σειρές. Μέτρηση, 1).Τέλος (xlUp).Σειρά
Last_Col = DSsheet. Κελιά (1, Στήλες. Μέτρηση).Τέλος (xlToLeft).Στήλη
Σειρά PvtRange = DSsheet. Κύτταρα(1, 1).Αλλαγή μεγέθους (Last_Row, Last_Col)

Οπου:

  • Last_Row: Μεταβλητή για την αποθήκευση του τελευταίου συμπληρωμένου αριθμού σειράς, δηλαδή 9995
  • Last_Col: Μεταβλητή για την αποθήκευση του τελευταίου συμπληρωμένου αριθμού στήλης, δηλαδή 21
  • Εύρος Pvt: Το PvtRange αναφέρεται σε ολόκληρο το εύρος δεδομένων για το pivot

7. Δημιουργήστε μια συγκεντρωτική προσωρινή μνήμη και έναν συγκεντρωτικό πίνακα

Μια συγκεντρωτική κρυφή μνήμη συγκρατεί τον πίνακα περιστροφής. Επομένως, πρέπει να δημιουργήσετε μια προσωρινή μνήμη πριν δημιουργήσετε έναν συγκεντρωτικό πίνακα. Πρέπει να χρησιμοποιήσετε τις αναφορές σύνταξης του VBA για να δημιουργήσετε τη συγκεντρωτική κρυφή μνήμη εντός του φύλλου Συγκεντρωτική.

Αναφέροντας τη συγκεντρωτική μνήμη cache, πρέπει να δημιουργήσετε έναν συγκεντρωτικό πίνακα. Ως μέρος του συγκεντρωτικού πίνακα, μπορείτε να ορίσετε το φύλλο, την αναφορά κελιού και το όνομα του συγκεντρωτικού πίνακα.

Ορισμός PvtCache = ActiveWorkbook. PivotCaches. Δημιουργία (SourceType:=xlDatabase, SourceData:=PvtRange).CreatePivotTable (TableDestination:=PSheet. Κελιά (2, 2), Όνομα πίνακα:="MUODemoTable")
Ορισμός PvtTable = PvtCache. CreatePivotTable (TableDestination:=PSsheet. Κελιά (1, 1), Όνομα πίνακα:="MUODemoTable")

Οπου:

  • ActiveWorkbook: Το τρέχον βιβλίο εργασίας όπου έχετε το φύλλο Δεδομένα και Συγκεντρωτική.
  • PivotCaches. Δημιουργώ: Προεπιλεγμένη σύνταξη για τη δημιουργία συγκεντρωτικής κρυφής μνήμης.
  • Τυπος πηγης: Εφόσον έχετε τα δεδομένα μέσα στο βιβλίο εργασίας, μπορείτε να τα ορίσετε ως xlΒάση δεδομένων. Μερικές άλλες επιλογές περιλαμβάνουν xlΕνοποίηση, xlΕξωτερικό, ή xlPivotTable.
  • ΠηγήΔεδομένα: Μπορείτε να αναφέρετε το προηγούμενο εύρος περιστροφής ως δεδομένα πηγής.
  • CreatePivotTable: Προεπιλεγμένη εντολή για τη δημιουργία του συγκεντρωτικού πίνακα.
  • TableΠροορισμός: Πρέπει να καθορίσετε τις αναφορές φύλλου και κελιών όπου θέλετε να δημιουργήσετε το pivot.
  • Όνομα πίνακα: Καθορίστε ένα όνομα συγκεντρωτικού πίνακα.
  • CreatePivotTable: Προεπιλεγμένη εντολή για τη δημιουργία του συγκεντρωτικού πίνακα μέσα στην κρυφή μνήμη περιστροφής.

8. Εισαγάγετε γραμμές, στήλες, φίλτρα και τιμές

Εφόσον ο συγκεντρωτικός πίνακας είναι έτοιμος, πρέπει να αρχίσετε να προσθέτετε τις παραμέτρους στα φίλτρα, τις γραμμές, τις στήλες και τις τιμές συγκέντρωσης. Μπορείτε να χρησιμοποιήσετε το VBA συγκεντρωτικά πεδία εντολή για να ξεκινήσει η δήλωση των λεπτομερειών.

Για να προσθέσετε τιμές φίλτρου:

Με το ActiveSheet. Συγκεντρωτικοί Πίνακες("MUODemoTable").PivotFields("Περιοχή")
.Orientation = xlPageField
ΤέλοςΜε

Για να προσθέσετε τιμές σειρών:

Με το ActiveSheet. Συγκεντρωτικοί Πίνακες("MUODemoTable").PivotFields("Υποκατηγορία")
.Orientation = xlRowField
ΤέλοςΜε

Για να προσθέσετε τιμές στηλών:

Με το ActiveSheet. Συγκεντρωτικοί Πίνακες("MUODemoTable").PivotFields("κατάσταση")
.Orientation = xlColumnField
ΤέλοςΜε

Για να προσθέσετε τιμές συνάθροισης:

Με το ActiveSheet. Συγκεντρωτικοί Πίνακες("MUODemoTable").PivotFields("Εκπτώσεις")
.Orientation = xlDataField
.Λειτουργία = xlΆθροισμα
ΤέλοςΜε

Είναι σημαντικό να σημειώσετε ότι πρέπει να αναφέρετε το ενεργό φύλλο (Συγκεντρωτικό φύλλο), ακολουθούμενο από το όνομα του συγκεντρωτικού πίνακα και το όνομα της μεταβλητής. Όταν χρειάζεται να προσθέσετε το φίλτρο (α), τη σειρά (ες) και τη στήλη (ες), μπορείτε να κάνετε εναλλαγή μεταξύ διαφόρων συντακτικών, οι οποίες περιλαμβάνουν τα εξής:

  • xlPageField: Για να προσθέσετε φίλτρα.
  • xlRowField: Για να προσθέσετε σειρές.
  • xlRowField: Για να προσθέσετε στήλες.

Τέλος, μπορείτε να χρησιμοποιήσετε το xlDataField εντολή για τον υπολογισμό των συναθροίσεων τιμών. Μπορείτε να χρησιμοποιήσετε άλλες συγκεντρωτικές συναρτήσεις όπως xlSum, xlAverage, xlCount, xlMax, xlMin και xlProduct.

9. Εκτέλεση του κώδικα Excel VBA για τη δημιουργία αυτόματων συγκεντρώσεων

Τέλος, όταν ολόκληρο το πρόγραμμα είναι έτοιμο, μπορείτε να το εκτελέσετε πατώντας F5 ή κάνοντας κλικ στο παίζω κουμπί. Όταν επιστρέψετε στο Συγκεντρωτικό φύλλο του βιβλίου εργασίας σας, θα δείτε ότι ένας νέος συγκεντρωτικός πίνακας είναι έτοιμος για έλεγχο.

Εάν θέλετε να δείτε μια βήμα προς βήμα εκτέλεση του τρόπου αναπαραγωγής της εντολής κώδικα γραμμή προς γραμμή, μπορείτε να μεταβείτε στο πρόγραμμα επεξεργασίας κώδικα και να πατήσετε F8 πολλές φορές. Με αυτόν τον τρόπο, μπορείτε να δείτε πώς λειτουργεί κάθε γραμμή κώδικα και πώς η VBA δημιουργεί αυτόματα τα pivot σας.

Εκμάθηση αυτόματης κωδικοποίησης συγκεντρωτικών πινάκων

Τα Pivot δεν περιορίζονται μόνο στο MS Excel. Γλώσσες προγραμματισμού όπως η Python σάς επιτρέπουν να δημιουργείτε βελτιστοποιημένα pivots με λίγες μόνο γραμμές κώδικα.

Η βελτιστοποίηση δεδομένων δεν μπορεί να είναι πιο εύκολη από αυτό. Μπορείτε να επιλέξετε και να επιλέξετε αποτελεσματικά τις εντολές σας στην Python και να ολοκληρώσετε μια παρόμοια δομή περιστροφής παρόμοια με το Excel με ευκολία.