Δυναμική ονομαστική περιοχή του Excel: πώς να δημιουργήσετε και να χρησιμοποιήσετε

  • Μοιραστείτε Αυτό
Michael Brown

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

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

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

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

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

    1. Στο Φόρμουλα στην καρτέλα Καθορισμένα ονόματα ομάδα, κάντε κλικ στο Ορισμός ονόματος Ή, πατήστε Ctrl + F3 για να ανοίξετε το Excel Name Manger και κάντε κλικ στο κουμπί Νέα... κουμπί.
    2. Όπως και να έχει, η Νέο όνομα θα ανοίξει παράθυρο διαλόγου, όπου θα καθορίσετε τις ακόλουθες λεπτομέρειες:
      • Στο Όνομα πληκτρολογήστε το όνομα του δυναμικού σας εύρους.
      • Στο Πεδίο εφαρμογής ρυθμίστε το πεδίο εφαρμογής του ονόματος. Βιβλίο εργασίας (προεπιλογή) συνιστάται στις περισσότερες περιπτώσεις.
      • Στο Αναφέρεται σε εισάγετε είτε τον τύπο OFFSET COUNTA είτε τον τύπο INDEX COUNTA.
    3. Κάντε κλικ στο OK. Έγινε!

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

    Τύπος OFFSET για τον ορισμό μιας δυναμικής ονομαστικής περιοχής του Excel

    Ο γενικός τύπος για να δημιουργήσετε μια δυναμική περιοχή με όνομα στο Excel είναι ο εξής:

    OFFSET( first_cell , 0, 0, COUNTA( στήλη ), 1)

    Πού:

    • first_cell - το πρώτο στοιχείο που πρέπει να συμπεριληφθεί στην ονομασμένη περιοχή, για παράδειγμα $A$2.
    • στήλη - μια απόλυτη αναφορά στη στήλη όπως $A:$A.

    Στον πυρήνα αυτού του τύπου, χρησιμοποιείτε τη συνάρτηση COUNTA για να λάβετε τον αριθμό των μη κενών κελιών στη στήλη που σας ενδιαφέρει. Αυτός ο αριθμός πηγαίνει κατευθείαν στη στήλη ύψος όρισμα της συνάρτησης OFFSET(reference, rows, cols, [height], [width]) που της λέει πόσες γραμμές θα επιστρέψει.

    Πέρα από αυτό, είναι ένας συνηθισμένος τύπος Offset, όπου:

    • αναφορά είναι το σημείο εκκίνησης από το οποίο ξεκινάτε τη μετατόπιση (first_cell).
    • σειρές και cols είναι και οι δύο 0, δεδομένου ότι δεν υπάρχουν στήλες ή γραμμές για αντιστάθμιση.
    • πλάτος ισούται με 1 στήλη.

    Για παράδειγμα, για να δημιουργήσουμε μια δυναμική ονομαστική περιοχή για τη στήλη Α του φύλλου3, ξεκινώντας από το κελί Α2, χρησιμοποιούμε αυτόν τον τύπο:

    =OFFSET(Sheet3!$A$2, 0, 0, COUNTA(Sheet3!$A:$A), 1)

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

    Τύπος INDEX για να δημιουργήσετε μια δυναμική ονομαστική περιοχή στο Excel

    Ένας άλλος τρόπος για να δημιουργήσετε μια δυναμική περιοχή του Excel είναι η χρήση της COUNTA σε συνδυασμό με τη συνάρτηση INDEX.

    first_cell :INDEX( στήλη ,COUNTA( στήλη ))

    Ο τύπος αυτός αποτελείται από δύο μέρη:

    • Στην αριστερή πλευρά του τελεστή εύρους (:), βάζετε τη σκληρά κωδικοποιημένη αρχική αναφορά, όπως $A$2.
    • Στη δεξιά πλευρά, χρησιμοποιείτε τη συνάρτηση INDEX(array, row_num, [column_num]) για να υπολογίσετε την τελική αναφορά. Εδώ, παρέχετε ολόκληρη τη στήλη A για τον πίνακα και χρησιμοποιείτε τη συνάρτηση COUNTA για να λάβετε τον αριθμό γραμμής (δηλαδή τον αριθμό των κελιών χωρίς εγγραφή στη στήλη A).

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

    =$A$2:INDEX($A:$A, COUNTA($A:$A))

    Δεδομένου ότι υπάρχουν 5 μη κενά κελιά στη στήλη Α, συμπεριλαμβανομένης της επικεφαλίδας της στήλης, η COUNTA επιστρέφει 5. Κατά συνέπεια, η INDEX επιστρέφει $A$5, το οποίο είναι το τελευταίο κελί που χρησιμοποιήθηκε στη στήλη Α (συνήθως ένας τύπος Index επιστρέφει μια τιμή, αλλά ο τελεστής αναφοράς τον αναγκάζει να επιστρέψει μια αναφορά). Και επειδή έχουμε ορίσει το $A$2 ως σημείο εκκίνησης, το τελικό αποτέλεσμα του τύπου είναι το εύρος $A$2:$A$5.

    Για να ελέγξετε το πρόσφατα δημιουργημένο δυναμικό εύρος, μπορείτε να αναθέσετε στη COUNTA να ανακτήσει τον αριθμό των στοιχείων:

    =COUNTA(Items)

    Αν όλα γίνουν σωστά, το αποτέλεσμα του τύπου θα αλλάξει μόλις προσθέσετε ή αφαιρέσετε στοιχεία από/προς τη λίστα:

    Σημείωση. Οι δύο τύποι που συζητήθηκαν παραπάνω παράγουν το ίδιο αποτέλεσμα, ωστόσο υπάρχει μια διαφορά στην απόδοση που πρέπει να γνωρίζετε. Η OFFSET είναι μια πτητική συνάρτηση που υπολογίζει εκ νέου με κάθε αλλαγή σε ένα φύλλο. Σε ισχυρά σύγχρονα μηχανήματα και σε σύνολα δεδομένων λογικού μεγέθους, αυτό δεν θα πρέπει να αποτελεί πρόβλημα. Σε μηχανήματα χαμηλής χωρητικότητας και σε μεγάλα σύνολα δεδομένων, αυτό μπορεί να επιβραδύνει το Excel. Σε αυτή την περίπτωση, θα πρέπει ναΧρησιμοποιήστε καλύτερα τον τύπο INDEX για να δημιουργήσετε ένα δυναμικό εύρος με όνομα.

    Πώς να κάνετε δισδιάστατο δυναμικό εύρος στο Excel

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

    first_cell :INDEX($1:$1048576, COUNTA( first_column ), COUNTA( first_row )))

    Σε αυτόν τον τύπο, έχετε δύο συναρτήσεις COUNTA για να λάβετε την τελευταία μη κενή γραμμή και την τελευταία μη κενή στήλη ( row_num και column_num ορίσματα της συνάρτησης INDEX, αντίστοιχα). array τροφοδοτείτε ολόκληρο το φύλλο εργασίας (1048576 γραμμές στο Excel 2016 - 2007, 65535 γραμμές στο Excel 2003 και νεότερα).

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

    Με τα δεδομένα πωλήσεων να ξεκινούν από τη στήλη Β, σειρά 2, ο τύπος παίρνει την ακόλουθη μορφή:

    =$B$2:INDEX($1:$1048576,COUNTA($B:$B),COUNTA($2:$2))

    Για να βεβαιωθείτε ότι το δυναμικό εύρος σας λειτουργεί όπως πρέπει, εισαγάγετε τους ακόλουθους τύπους κάπου στο φύλλο:

    =SUM(πωλήσεις)

    =SUM(B2:D5)

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

    Πώς να χρησιμοποιείτε δυναμικές ονομαστικές περιοχές σε τύπους του Excel

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

    Για αυτό το παράδειγμα, θα χρησιμοποιήσουμε τον κλασικό τύπο INDEX MATCH που εκτελεί Vlookup στο Excel:

    INDEX ( return_range , MATCH ( lookup_value , lookup_range , 0))

    ...και δείτε πώς μπορούμε να κάνουμε τον τύπο ακόμη πιο ισχυρό με τη χρήση δυναμικών ονομαστικών περιοχών.

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

    Για να αναγκάσουμε τον τύπο να επεκταθεί αυτόματα, θα ορίσουμε 3 ονόματα: 2 δυναμικές περιοχές και 1 στατικό κελί με όνομα:

    Lookup_range: =$A$2:INDEX($A:$A, COUNTA($A:$A))

    Return_range: =$E$2:INDEX($E:$E, COUNTA($E:$E))

    Lookup_value: =$H$1

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

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

    Ο ολοκληρωμένος τύπος έχει ως εξής:

    =INDEX(Return_range, MATCH(Lookup_value, Lookup_range, 0))

    Και λειτουργεί τέλεια!

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

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

    Με αυτόν τον τρόπο δημιουργείτε και χρησιμοποιείτε δυναμικές ονομαστικές περιοχές στο Excel. Για να δείτε από κοντά τους τύπους που συζητήθηκαν σε αυτό το σεμινάριο, μπορείτε να κατεβάσετε το δείγμα του βιβλίου εργασίας του Excel Dynamic Named Range Workbook. Σας ευχαριστώ για την ανάγνωση και ελπίζω να σας δω στο blog μας την επόμενη εβδομάδα!

    Ο Michael Brown είναι ένας αφοσιωμένος λάτρης της τεχνολογίας με πάθος για την απλοποίηση πολύπλοκων διαδικασιών χρησιμοποιώντας εργαλεία λογισμικού. Με περισσότερο από μια δεκαετία εμπειρίας στον κλάδο της τεχνολογίας, έχει βελτιώσει τις δεξιότητές του στο Microsoft Excel και το Outlook, καθώς και στα Φύλλα Google και στα Έγγραφα. Το blog του Michael είναι αφιερωμένο στο να μοιράζεται τη γνώση και την τεχνογνωσία του με άλλους, παρέχοντας εύκολες συμβουλές και σεμινάρια για τη βελτίωση της παραγωγικότητας και της αποτελεσματικότητας. Είτε είστε έμπειρος επαγγελματίας είτε αρχάριος, το ιστολόγιο του Michael προσφέρει πολύτιμες πληροφορίες και πρακτικές συμβουλές για να αξιοποιήσετε στο έπακρο αυτά τα βασικά εργαλεία λογισμικού.