Πίνακας περιεχομένων
Το σεμινάριο δείχνει πώς να χρησιμοποιείτε τη συνάρτηση SORT για τη δυναμική ταξινόμηση πινάκων δεδομένων. Θα μάθετε έναν τύπο για την αλφαβητική ταξινόμηση στο Excel, την τακτοποίηση αριθμών σε αύξουσα ή φθίνουσα σειρά, την ταξινόμηση με βάση πολλαπλές στήλες και πολλά άλλα.
Η λειτουργία Ταξινόμησης υπάρχει εδώ και πολύ καιρό. Αλλά με την εισαγωγή των δυναμικών πινάκων στο Excel 365, εμφανίστηκε ένας εκπληκτικά απλός τρόπος ταξινόμησης με τύπους. Η ομορφιά αυτής της μεθόδου είναι ότι τα αποτελέσματα ενημερώνονται αυτόματα όταν αλλάζουν τα δεδομένα της πηγής.
Λειτουργία SORT του Excel
Η συνάρτηση SORT του Excel ταξινομεί τα περιεχόμενα ενός πίνακα ή μιας περιοχής ανά στήλες ή γραμμές, με αύξουσα ή φθίνουσα σειρά.
Το αποτέλεσμα είναι ένας δυναμικός πίνακας που διαχέεται αυτόματα στα γειτονικά κελιά κάθετα ή οριζόντια, ανάλογα με το σχήμα του πηγαίου πίνακα.
Η σύνταξη της συνάρτησης SORT έχει ως εξής:
SORT(array, [sort_index], [sort_order], [by_col])Πού:
Συστοιχία (απαιτείται) - είναι ένας πίνακας τιμών ή μια σειρά κελιών προς ταξινόμηση. Αυτές μπορούν να είναι οποιεσδήποτε τιμές, όπως κείμενο, αριθμοί, ημερομηνίες, χρόνοι κ.λπ.
Sort_index (προαιρετικό) - ένας ακέραιος αριθμός που υποδεικνύει με βάση ποια στήλη ή γραμμή θα γίνει η ταξινόμηση. Εάν παραλειφθεί, χρησιμοποιείται ο προεπιλεγμένος δείκτης 1.
Sort_order (προαιρετικό) - καθορίζει τη σειρά ταξινόμησης:
- 1 ή παραλείπεται (προεπιλογή) - αύξουσα σειρά, δηλαδή από το μικρότερο προς το μεγαλύτερο
- -1 - φθίνουσα σειρά, δηλαδή από το μεγαλύτερο προς το μικρότερο
By_col (προαιρετικό) - μια λογική τιμή που υποδεικνύει την κατεύθυνση της ταξινόμησης:
- FALSE ή παραλείπεται (προεπιλογή) - ταξινόμηση ανά γραμμή. Θα χρησιμοποιήσετε αυτή την επιλογή τις περισσότερες φορές.
- TRUE - ταξινόμηση ανά στήλη. Χρησιμοποιήστε αυτή την επιλογή εάν τα δεδομένα σας είναι οργανωμένα οριζόντια σε στήλες όπως σε αυτό το παράδειγμα.
Συνάρτηση SORT του Excel - συμβουλές και σημειώσεις
Η SORT είναι μια νέα συνάρτηση δυναμικού πίνακα και ως τέτοια έχει μερικές ιδιαιτερότητες που πρέπει να γνωρίζετε:
- Επί του παρόντος, η συνάρτηση SORT είναι διαθέσιμη μόνο στο Microsoft 365 και στο Excel 2021. Τα Excel 2019, Excel 2016 δεν υποστηρίζουν δυναμικούς τύπους συστοιχιών, επομένως η συνάρτηση SORT δεν είναι διαθέσιμη σε αυτές τις εκδόσεις.
- Εάν ο πίνακας που επιστρέφεται από έναν τύπο SORT είναι το τελικό αποτέλεσμα (δηλ. δεν περνάει σε άλλη συνάρτηση), το Excel δημιουργεί δυναμικά μια περιοχή κατάλληλου μεγέθους και τη γεμίζει με τις ταξινομημένες τιμές. Έτσι, βεβαιωθείτε ότι έχετε πάντα αρκετά κενά κελιά κάτω ή/και δεξιά από το κελί όπου εισάγετε τον τύπο, διαφορετικά εμφανίζεται σφάλμα #SPILL.
- Τα αποτελέσματα ενημερώνονται δυναμικά καθώς αλλάζουν τα δεδομένα της πηγής. Ωστόσο, η array που παρέχεται στον τύπο δεν επεκτείνεται αυτόματα για να συμπεριλάβει νέες καταχωρήσεις που προστίθενται εκτός της αναφερόμενης array Για να συμπεριλάβετε τέτοια στοιχεία, πρέπει είτε να ενημερώσετε το array αναφορά στον τύπο σας, ή μετατρέψτε την περιοχή προέλευσης σε πίνακα, όπως φαίνεται σε αυτό το παράδειγμα, ή δημιουργήστε μια δυναμική περιοχή με όνομα.
Βασικός τύπος SORT του Excel
Αυτό το παράδειγμα δείχνει έναν βασικό τύπο για την ταξινόμηση δεδομένων στο Excel σε αύξουσα και φθίνουσα σειρά.
Ας υποθέσουμε ότι τα δεδομένα σας είναι ταξινομημένα αλφαβητικά όπως φαίνεται στο παρακάτω στιγμιότυπο οθόνης. Θέλετε να ταξινομήσετε τους αριθμούς στη στήλη Β χωρίς να σπάσετε ή να αναμίξετε τα δεδομένα.
Τύπος για ταξινόμηση σε αύξουσα σειρά
Για να ταξινομήσετε τις τιμές στη στήλη Β από τη μικρότερη προς τη μεγαλύτερη, ορίστε ο τύπος που πρέπει να χρησιμοποιήσετε:
=SORT(A2:B8, 2, 1)
Πού:
- A2:B8 είναι ο πίνακας πηγής
- 2 είναι ο αριθμός της στήλης για ταξινόμηση
- 1 είναι η αύξουσα σειρά ταξινόμησης
Δεδομένου ότι τα δεδομένα μας είναι οργανωμένα σε σειρές, το τελευταίο όρισμα μπορεί να παραλειφθεί για να είναι προεπιλεγμένη η τιμή FALSE - ταξινόμηση κατά σειρές.
Απλά εισαγάγετε τον τύπο σε οποιοδήποτε κενό κελί (D2 στην περίπτωσή μας), πατήστε Enter , και τα αποτελέσματα θα διαχυθούν αυτόματα στο D2:E8.
Τύπος για ταξινόμηση σε φθίνουσα σειρά
Για να ταξινομήσετε τα δεδομένα κατά φθίνουσα σειρά, δηλαδή από το μεγαλύτερο προς το μικρότερο, ορίστε το sort_order σε -1 ως εξής:
=SORT(A2:B8, 2, -1)
Εισάγετε τον τύπο στο επάνω αριστερό κελί της περιοχής προορισμού και θα έχετε αυτό το αποτέλεσμα:
Με παρόμοιο τρόπο, μπορείτε να ταξινομήσετε τις τιμές κειμένου με αλφαβητική σειρά από το Α έως το Ω ή από το Ω έως το Α.
Πώς να ταξινομήσετε δεδομένα στο Excel χρησιμοποιώντας τύπο
Τα παρακάτω παραδείγματα δείχνουν μερικές τυπικές χρήσεις της συνάρτησης SORT στο Excel και μερικές μη τετριμμένες.
Excel SORT κατά στήλη
Όταν ταξινομείτε δεδομένα στο Excel, ως επί το πλείστον αλλάζετε τη σειρά των γραμμών. Όταν όμως τα δεδομένα σας είναι οργανωμένα οριζόντια με γραμμές που περιέχουν ετικέτες και στήλες που περιέχουν εγγραφές, μπορεί να χρειαστεί να ταξινομήσετε από αριστερά προς τα δεξιά και όχι από πάνω προς τα κάτω.
Για να ταξινομήσετε ανά στήλη στο Excel, ορίστε το by_col σε TRUE. Σε αυτή την περίπτωση, sort_index θα αντιπροσωπεύει μια γραμμή, όχι μια στήλη.
Για παράδειγμα, για να ταξινομήσετε τα παρακάτω δεδομένα με βάση το Ποσό από το υψηλότερο προς το χαμηλότερο, χρησιμοποιήστε αυτόν τον τύπο:
=SORT(B1:H2, 2, 1, TRUE)
Πού:
- B1:H2 είναι τα δεδομένα πηγής για ταξινόμηση
- 2 είναι ο δείκτης ταξινόμησης, αφού ταξινομούμε τους αριθμούς στη δεύτερη σειρά
- -1 υποδεικνύει την φθίνουσα σειρά ταξινόμησης
- TRUE σημαίνει ταξινόμηση στηλών, όχι γραμμών
Ταξινόμηση με πολλαπλές στήλες σε διαφορετική σειρά (ταξινόμηση πολλαπλών επιπέδων)
Όταν εργάζεστε με πολύπλοκα μοντέλα δεδομένων, μπορεί συχνά να χρειάζεστε μια ταξινόμηση πολλαπλών επιπέδων. Αυτό μπορεί να γίνει με έναν τύπο; Ναι, εύκολα! Αυτό που κάνετε είναι να παρέχετε σταθερές συστοιχιών για το sort_index και sort_order επιχειρήματα.
Για παράδειγμα, για να ταξινομήσετε τα παρακάτω δεδομένα πρώτα κατά Περιοχή (στήλη Α) από το Α έως το Ζ, και στη συνέχεια με Ποσότητα . (στήλη Γ) από το μικρότερο προς το μεγαλύτερο, ορίστε τα ακόλουθα επιχειρήματα:
- Συστοιχία είναι τα δεδομένα στο A2:C13.
- Sort_index είναι η σταθερά του πίνακα {1,3}, αφού πρώτα ταξινομούμε κατά Περιοχή (1η στήλη), και στη συνέχεια με Ποσότητα (3η στήλη).
- Sort_order είναι η σταθερά του πίνακα {1,-1}, δεδομένου ότι η 1η στήλη πρέπει να ταξινομηθεί σε αύξουσα σειρά και η 3η στήλη σε φθίνουσα σειρά.
- By_col παραλείπεται επειδή ταξινομούμε τις γραμμές, που είναι προεπιλεγμένο.
Συνδυάζοντας τα επιχειρήματα, έχουμε αυτόν τον τύπο:
=SORT(A2:C13, {1,3}, {1,-1})
Οι τιμές κειμένου στην πρώτη στήλη ταξινομούνται αλφαβητικά και οι αριθμοί στην τρίτη στήλη από το μεγαλύτερο προς το μικρότερο:
Ταξινόμηση και φιλτράρισμα στο Excel
Σε περίπτωση που θέλετε να φιλτράρετε τα δεδομένα με κάποια κριτήρια και να βάλετε την έξοδο σε σειρά, χρησιμοποιήστε τις συναρτήσεις SORT και FILTER μαζί:
SORT(FILTER(array, criteria_range = κριτήρια ), [sort_index], [sort_order], [by_col])Η συνάρτηση FILTER λαμβάνει έναν πίνακα τιμών με βάση τα κριτήρια που ορίζετε και περνάει αυτόν τον πίνακα στο πρώτο όρισμα της SORT.
Το καλύτερο πράγμα σε αυτόν τον τύπο είναι ότι εξάγει επίσης τα αποτελέσματα ως δυναμικό εύρος διαρροής, χωρίς να χρειάζεται να πατήσετε Ctrl + Shift + Enter ή να μαντέψετε σε πόσα κελιά θα το αντιγράψετε. Ως συνήθως, πληκτρολογείτε έναν τύπο στο πιο πάνω κελί και πατάτε το πλήκτρο Enter.
Ως παράδειγμα, θα εξάγουμε στοιχεία με ποσότητα ίση ή μεγαλύτερη από 30 (>=30) από τα δεδομένα προέλευσης στο A2:B9 και θα ταξινομήσουμε τα αποτελέσματα σε αύξουσα σειρά.
Για το σκοπό αυτό, δημιουργούμε πρώτα τη συνθήκη, ας πούμε, στο κελί E2, όπως φαίνεται στην παρακάτω εικόνα. Και στη συνέχεια, δημιουργούμε τον τύπο SORT του Excel με τον εξής τρόπο:
=SORT(FILTER(A2:B9, B2:B9>=E2), 2)
Εκτός από array που παράγεται από τη συνάρτηση FILTER, καθορίζουμε μόνο το sort_index Τα υπόλοιπα δύο ορίσματα παραλείπονται επειδή οι προεπιλογές λειτουργούν ακριβώς όπως χρειαζόμαστε (ταξινόμηση αύξουσα, ανά γραμμή).
Λήψη των Ν μεγαλύτερων ή μικρότερων τιμών και ταξινόμηση των αποτελεσμάτων
Κατά την ανάλυση τεράστιων όγκων πληροφοριών, υπάρχει συχνά η ανάγκη να εξαγάγετε έναν ορισμένο αριθμό κορυφαίων τιμών. Ίσως όχι μόνο να τις εξαγάγετε, αλλά και να τις τακτοποιήσετε με την επιθυμητή σειρά. Και ιδανικά, να επιλέξετε ποιες στήλες θα συμπεριληφθούν στα αποτελέσματα. Ακούγεται δύσκολο; Όχι με τις νέες δυναμικές συναρτήσεις συστοιχιών!
Ακολουθεί ένας γενικός τύπος:
INDEX(SORT(....), SEQUENCE( n ), { column1_to_return , column2_to_return , ...})Πού n είναι ο αριθμός των τιμών που θέλετε να επιστρέψετε.
Από το παρακάτω σύνολο δεδομένων, υποθέστε ότι θέλετε να λάβετε μια λίστα με τα 3 κορυφαία με βάση τους αριθμούς στη στήλη C.
Για να γίνει αυτό, ταξινομείτε πρώτα τον πίνακα A2:C13 με βάση την 3η στήλη σε φθίνουσα σειρά:
SORT(A2:C13, 3, -1)
Και στη συνέχεια, τοποθετήστε τον παραπάνω τύπο στην πρώτη ( array ) όρισμα της συνάρτησης INDEX για να ταξινομηθεί ο πίνακας από το μεγαλύτερο προς το μικρότερο.
Για το δεύτερο ( row_num ) όρισμα, το οποίο υποδεικνύει πόσες γραμμές πρέπει να επιστραφούν, δημιουργήστε τους απαιτούμενους διαδοχικούς αριθμούς χρησιμοποιώντας τη συνάρτηση SEQUENCE. Καθώς χρειαζόμαστε 3 κορυφαίες τιμές, χρησιμοποιούμε τη SEQUENCE(3), η οποία είναι η ίδια με την παροχή μιας σταθεράς κάθετου πίνακα {1;2;3} απευθείας στον τύπο.
Για το τρίτο ( col_num ) όρισμα, το οποίο ορίζει πόσες στήλες θα επιστραφούν, παρέχετε τους αριθμούς των στηλών με τη μορφή μιας οριζόντιας σταθεράς πίνακα. Θέλουμε να επιστρέψουμε τις στήλες B και C, οπότε χρησιμοποιούμε τον πίνακα {2,3}.
Τελικά, έχουμε τον ακόλουθο τύπο:
=INDEX(SORT(A2:C13, 3, -1), SEQUENCE(3), {2,3})
Και παράγει ακριβώς τα αποτελέσματα που θέλουμε:
Για να επιστρέψετε 3 πυθμένας τιμές, απλά ταξινομήστε τα αρχικά δεδομένα από το μικρότερο προς το μεγαλύτερο. Για το σκοπό αυτό, αλλάξτε το sort_order όρισμα από -1 έως 1:
=INDEX(SORT(A2:C13, 3, 1), SEQUENCE(3), {2,3})
Επιστροφή μιας ταξινομημένης τιμής σε μια συγκεκριμένη θέση
Κοιτάζοντας από άλλη οπτική γωνία, τι γίνεται αν θέλετε να επιστρέψετε μόνο μια συγκεκριμένη θέση ταξινόμησης; Ας πούμε, μόνο την 1η , μόνο τη 2η ή μόνο την 3η εγγραφή από την ταξινομημένη λίστα; Για να το κάνετε αυτό, χρησιμοποιήστε την απλοποιημένη έκδοση του τύπου INDEX SORT που συζητήθηκε παραπάνω:
INDEX(SORT(...), n , { column1_to_return , column2_to_return , ...})Πού n είναι η θέση ενδιαφέροντος.
Για παράδειγμα, για να λάβετε μια συγκεκριμένη θέση από την κορυφή (δηλαδή από τα δεδομένα που είναι ταξινομημένα κατά φθίνουσα σειρά), χρησιμοποιήστε αυτόν τον τύπο:
=INDEX(SORT(A2:C13, 3, -1), F1, {2,3})
Για να λάβετε μια συγκεκριμένη θέση από το κάτω μέρος (δηλαδή από τα δεδομένα που είναι ταξινομημένα με αύξουσα σειρά), χρησιμοποιήστε αυτό:
=INDEX(SORT(A2:C13, 3, 1), I1, {2,3})
Όπου A2:C13 είναι τα δεδομένα προέλευσης, F1 είναι η θέση από πάνω, I1 είναι η θέση από κάτω και {2,3} είναι οι στήλες που πρέπει να επιστραφούν.
Χρησιμοποιήστε τον πίνακα του Excel για να επεκτείνετε αυτόματα τον πίνακα ταξινόμησης
Όπως ήδη γνωρίζετε, ο ταξινομημένος πίνακας ενημερώνεται αυτόματα όταν κάνετε οποιαδήποτε αλλαγή στα αρχικά δεδομένα. Αυτή είναι η τυπική συμπεριφορά όλων των συναρτήσεων δυναμικών πινάκων, συμπεριλαμβανομένης της SORT. Ωστόσο, όταν προσθέτετε νέες καταχωρήσεις εκτός του αναφερόμενου πίνακα, αυτές δεν συμπεριλαμβάνονται αυτόματα σε έναν τύπο. Αν θέλετε ο τύπος σας να ανταποκρίνεται σε τέτοιες αλλαγές, μετατρέψτε το αρχικό εύρος σε ένα πλήρως-λειτουργικό πίνακα του Excel και χρησιμοποιήστε δομημένες αναφορές στον τύπο σας.
Για να δείτε πώς λειτουργεί στην πράξη, αναλογιστείτε το ακόλουθο παράδειγμα.
Ας υποθέσουμε ότι χρησιμοποιείτε τον παρακάτω τύπο SORT του Excel για να ταξινομήσετε τις τιμές στην περιοχή A2:B8 με αλφαβητική σειρά:
=SORT(A2:B8, 1, 1)
Στη συνέχεια, εισάγετε μια νέα καταχώρηση στη σειρά 9... και απογοητεύεστε όταν βλέπετε ότι η νεοεισαχθείσα καταχώρηση μένει εκτός του εύρους διαρροής:
Τώρα, μετατρέψτε την περιοχή προέλευσης σε πίνακα. Για το σκοπό αυτό, απλώς επιλέξτε την περιοχή σας, συμπεριλαμβανομένων των επικεφαλίδων των στηλών (A1:B8) και πατήστε Ctrl + T . Κατά την κατασκευή του τύπου σας, επιλέξτε την περιοχή προέλευσης με το ποντίκι και το όνομα του πίνακα θα εισαχθεί αυτόματα στον τύπο (αυτό ονομάζεται δομημένη αναφορά):
=SORT(Table1, 1, 1)
Όταν πληκτρολογείτε μια νέα καταχώρηση ακριβώς κάτω από την τελευταία γραμμή, ο πίνακας θα επεκταθεί αυτόματα και τα νέα δεδομένα θα συμπεριληφθούν στο εύρος διαρροής του τύπου SORT:
Η λειτουργία SORT του Excel δεν λειτουργεί
Εάν ο τύπος SORT σας οδηγεί σε σφάλμα, είναι πιθανό να οφείλεται στους ακόλουθους λόγους.
#Σφάλμα NAME: παλαιότερη έκδοση του Excel
Η SORT είναι μια νέα λειτουργία και λειτουργεί μόνο στο Excel 365 και στο Excel 2021. Σε παλαιότερες εκδόσεις όπου δεν υποστηρίζεται αυτή η λειτουργία, εμφανίζεται σφάλμα #NAME?
#SPILL σφάλμα: κάτι εμποδίζει την εμβέλεια της διαρροής
Εάν ένα ή περισσότερα κελιά στην περιοχή διαρροής δεν είναι εντελώς κενά ή δεν έχουν συγχωνευθεί, εμφανίζεται το σφάλμα #SPILL! Για να το διορθώσετε, απλώς αφαιρέστε το εμπόδιο. Για περισσότερες πληροφορίες, ανατρέξτε στην ενότητα Excel #SPILL! error - what it means and how to fix.
#VALUE σφάλμα: άκυρα επιχειρήματα
Κάθε φορά που συναντάτε ένα σφάλμα #VALUE! sort_index και sort_order επιχειρήματα. Sort_index δεν πρέπει να υπερβαίνει τον αριθμό των στηλών είναι array , και sort_order πρέπει να είναι είτε 1 (αύξουσα) είτε -1 (φθίνουσα).
#REF σφάλμα: το βιβλίο εργασίας πηγής είναι κλειστό
Δεδομένου ότι οι δυναμικοί πίνακες έχουν περιορισμένη υποστήριξη για αναφορές μεταξύ βιβλίων εργασίας, η συνάρτηση SORT απαιτεί να είναι ανοιχτά και τα δύο αρχεία. Εάν το βιβλίο εργασίας προέλευσης είναι κλειστό, ένας τύπος θα εμφανίσει σφάλμα #REF! Για να το διορθώσετε, απλώς ανοίξτε το αρχείο στο οποίο γίνεται αναφορά.
Αυτός είναι ο τρόπος ταξινόμησης δεδομένων στο Excel με τη χρήση τύπου. Σας ευχαριστώ για την ανάγνωση και ελπίζω να σας δω στο blog μας την επόμενη εβδομάδα!
Βιβλίο ασκήσεων για κατέβασμα
Ταξινόμηση στο Excel με τύπους (.xlsx αρχείο)