Επανασχεδιαστής τραπεζιών

Περιεχόμενα

Δεν είναι μυστικό ότι οι περισσότεροι χρήστες του Excel, όταν δημιουργούν πίνακες σε φύλλα, σκέφτονται πρώτα απ 'όλα τη δική τους άνεση και ευκολία. Έτσι γεννιούνται όμορφα, πολύχρωμα και δυσκίνητα τραπέζια με περίπλοκες «κεφαλίδες», τα οποία, ταυτόχρονα, δεν μπορούν να φιλτραριστούν ή να ταξινομηθούν καθόλου και είναι καλύτερα να μην σκεφτόμαστε καθόλου μια αυτόματη αναφορά με συγκεντρωτικό πίνακα.

Αργά ή γρήγορα, ο χρήστης ενός τέτοιου πίνακα καταλήγει στο συμπέρασμα ότι "μπορεί να μην είναι τόσο όμορφο, αλλά μπορεί να λειτουργήσει" και αρχίζει να απλοποιεί το σχεδιασμό του τραπεζιού του, φέρνοντάς το σε συμφωνία με τις κλασικές συστάσεις:

  • μια απλή κεφαλίδα μιας γραμμής, όπου κάθε στήλη θα έχει το δικό της μοναδικό όνομα (όνομα πεδίου)
  • μία γραμμή – μία ολοκληρωμένη λειτουργία (συμφωνία, πώληση, ανάρτηση, έργο κ.λπ.)
  • δεν υπάρχουν συγχωνευμένα κελιά
  • χωρίς διακοπές με τη μορφή κενών γραμμών και στηλών

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

Of     Επανασχεδιαστής τραπεζιών   do     Επανασχεδιαστής τραπεζιών  

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

Μπορείτε να μετατρέψετε έναν δισδιάστατο πίνακα σε επίπεδο πίνακα χρησιμοποιώντας μια απλή μακροεντολή. Ανοίξτε τον Επεξεργαστή Visual Basic μέσω της καρτέλας Προγραμματιστής – Visual Basic (Προγραμματιστής — Visual Basic Editor) ή συντόμευση πληκτρολογίου άλλος+F11. Εισαγάγετε μια νέα ενότητα (Εισαγωγή – Ενότητα) και αντιγράψτε το κείμενο αυτής της μακροεντολής εκεί:

Sub Redesigner() Dim i As Long Dim hc As Integer, hr As Integer Dim ns As Sheet hr = InputBox("Сколько строк с подписями сверху?") hc = InputBox("Сколько столбцов со подписями слева?") Application.Screen False i = 1 Set inpdata = Selection Set ns = Worksheets.Add For r = (hr + 1) To inpdata.Rows.Count For c = (hc + 1) To inpdata.Columns.Count For j = 1 To hc ns. Κελιά(i, j) = inpdata.Κελιά(r, j) Επόμενο j Για k = 1 έως hr ns.Κελιά(i, j + k - 1) = inpdata.Κελιά(k, c) Επόμενα k ns.Κελιά( i, j + k - 1) = inpdata.Κελιά(r, c) i = i + 1 Επόμενο c Επόμενο r Τέλος Υπο  

Στη συνέχεια, μπορείτε να κλείσετε το πρόγραμμα επεξεργασίας VBA και να επιστρέψετε στο Excel. Τώρα μπορούμε να επιλέξουμε τον αρχικό πίνακα (εντελώς, με κεφαλίδα και την πρώτη στήλη με μήνες) και να εκτελέσουμε τη μακροεντολή μας Προγραμματιστής – Μακροεντολές (Προγραμματιστής — Μακροεντολές) ή συνδυασμός πιέσεων άλλος+F8.

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

  • Τι είναι οι μακροεντολές, πού να εισαγάγετε κώδικα μακροεντολής στο VBA, πώς να τις χρησιμοποιήσετε
  • Δημιουργία αναφορών με Συγκεντρωτικούς Πίνακες
  • Εργαλείο για τον επανασχεδιασμό XNUMXD τραπεζιών σε επίπεδα από το πρόσθετο PLEX

 

Αφήστε μια απάντηση