Χρησιμοποιήστε ονόματα δυναμικού εύρους στο Excel για ευέλικτα αναπτυσσόμενα

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

Για να δημιουργήσετε μια απλή αναπτυσσόμενη λίστα, επιλέξτε το κελί όπου θα εισαχθούν τα δεδομένα και, στη συνέχεια, κάντε κλικ στην Επικύρωση δεδομένων(Data Validation) (στην καρτέλα Δεδομένα ), επιλέξτε (Data)Επικύρωση δεδομένων(Data Validation) , επιλέξτε Λίστα(List) (κάτω από Να επιτρέπεται(Allow) :) και, στη συνέχεια, εισαγάγετε τα στοιχεία της λίστας (χωρισμένα με κόμματα ) στο πεδίο Πηγή(Source) : (βλ. Εικόνα 1).

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

Μια άλλη επιλογή είναι να τοποθετήσετε τη λίστα σε ένα εύρος με όνομα εντός του υπολογιστικού φύλλου(named range within the spreadsheet) και, στη συνέχεια, να καθορίσετε αυτό το όνομα περιοχής (προλογίζεται με σύμβολο ίσου) στο πεδίο Πηγή(Source) : της επικύρωσης δεδομένων (όπως φαίνεται στην Εικόνα 2(Figure 2) ).

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

Ομοίως, εάν, για παράδειγμα, οι καταχωρήσεις Pears and Strawberries διαγραφούν, δεν θα εμφανίζονται πλέον στο αναπτυσσόμενο μενού, αλλά αντίθετα το αναπτυσσόμενο μενού θα περιλαμβάνει δύο "κενές" επιλογές, καθώς το αναπτυσσόμενο μενού εξακολουθεί να αναφέρεται σε ολόκληρη την περιοχή FruitChoices, συμπεριλαμβανομένων των κενών κελιών H9 και Η10(H10) .

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

Μια λύση σε αυτό το πρόβλημα είναι να χρησιμοποιήσετε ένα όνομα δυναμικής(dynamic) περιοχής ως πηγή για τις αναπτυσσόμενες επιλογές. Ένα όνομα δυναμικής περιοχής είναι αυτό που επεκτείνεται αυτόματα (ή συστέλλεται) ώστε να ταιριάζει ακριβώς με το μέγεθος ενός μπλοκ δεδομένων καθώς προστίθενται ή αφαιρούνται καταχωρίσεις. Για να το κάνετε αυτό, χρησιμοποιείτε έναν τύπο(formula) , αντί για ένα σταθερό εύρος διευθύνσεων κελιών, για να ορίσετε την ονομαζόμενη περιοχή.

Πώς να ρυθμίσετε ένα δυναμικό εύρος(Dynamic Range) στο Excel

Ένα κανονικό (στατικό) όνομα εύρους αναφέρεται σε μια καθορισμένη περιοχή κελιών ($H$3:$H$10 στο παράδειγμά μας, δείτε παρακάτω):

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

Πριν ξεκινήσουμε, βεβαιωθείτε ότι έχετε πραγματοποιήσει λήψη του αρχείου παραδείγματος του Excel  (οι μακροεντολές ταξινόμησης έχουν απενεργοποιηθεί).

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

Ολόκληρος ο τύπος που χρησιμοποιείται για τον καθορισμό του δυναμικού εύρους για τις επιλογές των Φρούτων είναι:(Fruits)

=OFFSET(FruitsHeading,1,0,IFERROR(MATCH(TRUE,INDEX(ISBLANK(OFFSET(FruitsHeading,1,0,20,1)),0,0),0)-1,20),1)

Το FruitsHeading(FruitsHeading) αναφέρεται στην επικεφαλίδα που βρίσκεται μία σειρά πάνω από την πρώτη καταχώριση στη λίστα. Ο αριθμός 20 (χρησιμοποιείται δύο φορές στον τύπο) είναι το μέγιστο μέγεθος (αριθμός σειρών) για τη λίστα (αυτό μπορεί να ρυθμιστεί όπως επιθυμείτε).

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

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

=OFFSET(FruitsHeading,1,0,IFERROR(MATCH(TRUE,INDEX(ISBLANK(OFFSET(FruitsHeading,1,0,20,1)),0,0),0)-1,20),1)

Το «ενδότερο» κομμάτι είναι OFFSET (FruitsHeading,1,0,20,1) . Αυτό αναφέρεται στο μπλοκ των 20 κελιών (κάτω από το κελί FruitsHeading ) όπου μπορούν να εισαχθούν επιλογές. Αυτή η συνάρτηση OFFSET λέει βασικά: Ξεκινήστε από το κελί FruitsHeading , κατεβείτε 1 γραμμή και πάνω από 0 στήλες και, στη συνέχεια, επιλέξτε μια περιοχή που έχει μήκος 20 σειρές και πλάτος 1 στήλη. Έτσι, αυτό μας δίνει το μπλοκ 20 σειρών όπου εισάγονται οι επιλογές Fruits .

Το επόμενο κομμάτι του τύπου είναι η συνάρτηση ISBLANK :

=OFFSET(FruitsHeading,1,0,IFERROR(MATCH(TRUE,INDEX(ISBLANK(the above),0,0),0)-1,20),1)

Εδώ, η συνάρτηση OFFSET (επεξηγείται παραπάνω) έχει αντικατασταθεί με το "το παραπάνω" (για να διευκολύνει την ανάγνωση των πραγμάτων). Αλλά η συνάρτηση ISBLANK λειτουργεί στο εύρος κελιών των 20 σειρών που ορίζει η συνάρτηση OFFSET .

Στη συνέχεια, το ISBLANK(ISBLANK) δημιουργεί ένα σύνολο 20 τιμών TRUE και FALSE , υποδεικνύοντας εάν καθένα από τα μεμονωμένα κελιά στο εύρος των 20 σειρών που αναφέρεται από τη συνάρτηση OFFSET είναι κενό (κενό) ή όχι. Σε αυτό το παράδειγμα, οι πρώτες 8 τιμές στο σύνολο θα είναι FALSE , καθώς τα πρώτα 8 κελιά δεν είναι άδεια και οι τελευταίες 12 τιμές θα είναι TRUE .

Το επόμενο κομμάτι του τύπου είναι η συνάρτηση INDEX :

=OFFSET(FruitsHeading,1,0,IFERROR(MATCH(TRUE,INDEX(the above,0,0),0)-1,20),1)

Και πάλι, "το παραπάνω" αναφέρεται στις λειτουργίες ISBLANK και OFFSET που περιγράφονται παραπάνω. Η συνάρτηση INDEX επιστρέφει έναν πίνακα που περιέχει τις 20 τιμές TRUE / FALSE που δημιουργήθηκαν από τη συνάρτηση ISBLANK .

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

Το επόμενο κομμάτι του τύπου είναι η συνάρτηση MATCH :

=OFFSET(FruitsHeading,1,0,IFERROR(MATCH(TRUE,the above,0)-1,20),1)

Η συνάρτηση MATCH επιστρέφει τη θέση της πρώτης TRUE τιμής, εντός του πίνακα που επιστρέφεται από τη συνάρτηση INDEX . Εφόσον οι πρώτες 8 καταχωρήσεις στη λίστα δεν είναι κενές, οι πρώτες 8 τιμές στον πίνακα θα είναι FALSE και η ένατη τιμή θα είναι TRUE (καθώς (TRUE)η 9η σειρά στο εύρος είναι κενή).

Έτσι η συνάρτηση MATCH θα επιστρέψει την τιμή του 9 . Σε αυτήν την περίπτωση, ωστόσο, θέλουμε πραγματικά να μάθουμε πόσες εγγραφές υπάρχουν στη λίστα, οπότε ο τύπος αφαιρεί 1 από την τιμή MATCH (που δίνει τη θέση της τελευταίας καταχώρισης). Έτσι, τελικά, το MATCH ( TRUE , το παραπάνω, 0)-1 επιστρέφει την τιμή του 8 .

Το επόμενο κομμάτι του τύπου είναι η συνάρτηση IFERROR :

=OFFSET(FruitsHeading,1,0,IFERROR(the above,20),1)

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

Αυτό συμβαίνει επειδή λέμε στη συνάρτηση MATCH να αναζητήσει την πρώτη τιμή TRUE (στον πίνακα τιμών από τη συνάρτηση ISBLANK ), αλλά αν ΚΑΝΕΝΑ(NONE) από τα κελιά δεν είναι κενό, τότε ολόκληρος ο πίνακας θα γεμίσει με τιμές FALSE . Εάν το MATCH δεν μπορεί να βρει την τιμή στόχο ( TRUE ) στον πίνακα που αναζητά, επιστρέφει ένα σφάλμα.

Έτσι, εάν ολόκληρη η λίστα είναι πλήρης (και επομένως, το MATCH επιστρέφει ένα σφάλμα), η συνάρτηση IFERROR θα επιστρέψει την τιμή 20 (γνωρίζοντας ότι πρέπει να υπάρχουν 20 εγγραφές στη λίστα).

Τέλος, το OFFSET(FruitsHeading,1,0,το παραπάνω,1)(OFFSET(FruitsHeading,1,0,the above,1)) επιστρέφει το εύρος που πραγματικά αναζητούμε: Ξεκινήστε από το κελί FruitsHeading , κατεβείτε 1 γραμμή και πάνω από 0 στήλες και, στη συνέχεια, επιλέξτε μια περιοχή που έχει πολλές σειρές όσο υπάρχουν καταχωρήσεις στη λίστα (και πλάτος 1 στήλης). Έτσι, ολόκληρος ο τύπος μαζί θα επιστρέψει το εύρος που περιέχει μόνο τις πραγματικές καταχωρήσεις (μέχρι το πρώτο κενό κελί).

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

Το παράδειγμα αρχείου (Δυναμικές λίστες) που χρησιμοποιήθηκε εδώ περιλαμβάνεται και μπορεί να γίνει λήψη από αυτόν τον ιστότοπο. Οι μακροεντολές δεν λειτουργούν, ωστόσο, επειδή στο WordPress δεν αρέσουν τα βιβλία του Excel με μακροεντολές μέσα.

Ως εναλλακτική λύση για τον καθορισμό του αριθμού των σειρών στο μπλοκ λίστας, στο μπλοκ λίστας μπορεί να εκχωρηθεί το δικό του όνομα περιοχής, το οποίο στη συνέχεια μπορεί να χρησιμοποιηθεί σε έναν τροποποιημένο τύπο. Στο παράδειγμα αρχείου, μια δεύτερη λίστα ( Ονόματα(Names) ) χρησιμοποιεί αυτήν τη μέθοδο. Εδώ, σε ολόκληρο το μπλοκ λίστας (κάτω από την επικεφαλίδα "NAMES", 40 σειρές στο αρχείο παραδείγματος) εκχωρείται το όνομα περιοχής NameBlock . Ο εναλλακτικός τύπος για τον ορισμό της λίστας ονομάτων(NamesList) είναι τότε:

=OFFSET(NamesHeading,1,0,IFERROR(MATCH(TRUE,INDEX(ISBLANK(NamesBlock),0,0),0)-1,ROWS(NamesBlock)),1)

όπου το NamesBlock(NamesBlock) αντικαθιστά το OFFSET ( FruitsHeading,1,0,20,1 ) και το ROWS(NamesBlock) αντικαθιστά το 20 (αριθμός σειρών) στον προηγούμενο τύπο.

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



About the author

"Είμαι ανεξάρτητος ειδικός στα Windows και στο Office. Έχω πάνω από 10 χρόνια εμπειρίας στην εργασία με αυτά τα εργαλεία και μπορώ να σας βοηθήσω να αξιοποιήσετε στο έπακρο. Οι δεξιότητές μου περιλαμβάνουν: εργασία με Microsoft Word, Excel, PowerPoint και Outlook, δημιουργία ιστού σελίδες και εφαρμογές και βοηθώντας τους πελάτες να επιτύχουν τους επιχειρηματικούς τους στόχους."



Related posts