Πίνακας περιεχομένων
Σήμερα θα εξετάσουμε από κοντά τη σύνταξη και τις τυπικές χρήσεις της νέας δυναμικής συνάρτησης SORTBY. Θα μάθετε πώς να προσαρμόζετε την ταξινόμηση στο Excel με έναν τύπο, να ταξινομείτε τυχαία μια λίστα, να ταξινομείτε τα κελιά ανάλογα με το μήκος του κειμένου και πολλά άλλα.
Το Microsoft Excel παρέχει διάφορους τρόπους για την ταξινόμηση δεδομένων κειμένου με αλφαβητική σειρά, ημερομηνιών με χρονολογική σειρά και αριθμών από το μικρότερο προς το μεγαλύτερο ή από το μεγαλύτερο προς το μικρότερο. Υπάρχει επίσης ένας τρόπος ταξινόμησης με βάση τις δικές σας προσαρμοσμένες λίστες. Εκτός από τη συμβατική λειτουργία Ταξινόμησης, το Excel 365 εισάγει έναν ολοκαίνουργιο τρόπο ταξινόμησης δεδομένων με τύπους - πολύ βολικό και απίστευτα απλό στη χρήση!
Λειτουργία Excel SORTBY
Η συνάρτηση SORTBY στο Excel έχει σχεδιαστεί για να ταξινομεί μια σειρά ή έναν πίνακα με βάση τις τιμές μιας άλλης σειράς ή ενός άλλου πίνακα. Η ταξινόμηση μπορεί να γίνει με βάση μία ή περισσότερες στήλες.
Η SORTBY είναι μία από τις έξι νέες συναρτήσεις δυναμικών πινάκων που είναι διαθέσιμες στο Excel για το Microsoft 365 και το Excel 2021. Το αποτέλεσμά της είναι ένας δυναμικός πίνακας που διαχέεται στα γειτονικά κελιά και ενημερώνεται αυτόματα όταν αλλάζουν τα δεδομένα προέλευσης.
Η συνάρτηση SORTBY έχει μεταβλητό αριθμό ορίων - τα δύο πρώτα είναι υποχρεωτικά και τα υπόλοιπα προαιρετικά:
SORTBY(array, by_array1, [sort_order1], [by_array2, sort_order2],...)Συστοιχία (απαιτείται) - η περιοχή κελιών ή ο πίνακας τιμών που θα ταξινομηθούν.
By_array1 (υποχρεωτικό) - το εύρος ή ο πίνακας για ταξινόμηση.
Sort_order1 (προαιρετικό) - η σειρά ταξινόμησης:
- 1 ή παραλείπεται (προεπιλογή) - αύξουσα σειρά
- -1 - φθίνουσα σειρά
By_array2 / Sort_order2 , ... (προαιρετικά) - πρόσθετα ζεύγη συστοιχιών / σειρών που χρησιμοποιούνται για την ταξινόμηση.
Σημαντική σημείωση! Επί του παρόντος, η λειτουργία SORTBY είναι διαθέσιμη μόνο με τις συνδρομές Microsoft 365 και το Excel 2021. Στο Excel 2019, το Excel 2016 και τις προηγούμενες εκδόσεις η λειτουργία SORTBY δεν είναι διαθέσιμη.
Λειτουργία SORTBY - 4 πράγματα που πρέπει να θυμάστε
Για να λειτουργήσει σωστά ένας τύπος SORTBY του Excel, υπάρχουν μερικά σημαντικά σημεία που πρέπει να προσέξετε:
- By_array τα επιχειρήματα θα πρέπει να είναι είτε μία γραμμή σε ύψος είτε μία στήλη σε πλάτος.
- Το array και όλα by_array Τα ορίσματα πρέπει να έχουν συμβατές διαστάσεις. Για παράδειγμα, κατά την ταξινόμηση με βάση δύο στήλες, array , by_array1 και by_array2 θα πρέπει να έχουν τον ίδιο αριθμό γραμμών, διαφορετικά θα εμφανιστεί σφάλμα #VALUE.
- Εάν ο πίνακας που επιστρέφει η SORTBY είναι το τελικό αποτέλεσμα (έξοδος σε ένα κελί και δεν περνάει σε άλλη συνάρτηση), το Excel δημιουργεί μια δυναμική περιοχή διαρροής και τη γεμίζει με τα αποτελέσματα. Επομένως, βεβαιωθείτε ότι έχετε αρκετά κενά κελιά κάτω ή/και δεξιά από το κελί όπου εισάγετε τον τύπο, διαφορετικά θα λάβετε σφάλμα #SPILL.
- Τα αποτελέσματα των τύπων SORTBY ενημερώνονται αυτόματα κάθε φορά που αλλάζουν τα δεδομένα πηγής. Ωστόσο, οι νέες καταχωρήσεις που προστίθενται εκτός του πίνακα που αναφέρεται στον τύπο δεν περιλαμβάνονται στα αποτελέσματα, εκτός αν ενημερώσετε το πεδίο array αναφοράς. Για να επεκταθεί αυτόματα ο αναφερόμενος πίνακας, μετατρέψτε την περιοχή προέλευσης σε πίνακα του Excel ή δημιουργήστε μια δυναμική περιοχή με όνομα.
Βασικός τύπος SORTBY στο Excel
Ακολουθεί ένα τυπικό σενάριο χρήσης ενός τύπου SORTBY στο Excel:
Ας υποθέσουμε ότι έχετε μια λίστα έργων με το Αξία Θέλετε να ταξινομήσετε τα έργα με βάση την τιμή τους σε ένα ξεχωριστό φύλλο. Καθώς οι άλλοι χρήστες δεν χρειάζεται να βλέπουν τους αριθμούς, προτιμάτε να μην συμπεριλάβετε το Αξία στήλη στα αποτελέσματα.
Η εργασία αυτή μπορεί να πραγματοποιηθεί εύκολα με τη συνάρτηση SORTBY, για την οποία δίνετε τα ακόλουθα ορίσματα:
- Συστοιχία είναι A2:A10 - αφού δεν επιθυμείτε την Αξία στήλη να εμφανίζεται στα αποτελέσματα, την αφήνετε εκτός του πίνακα.
- By_array1 είναι B2:B10 - ταξινόμηση κατά Αξία .
- Sort_order1 είναι -1 - φθίνουσα, δηλαδή από το υψηλότερο προς το χαμηλότερο.
Συνδυάζοντας τα επιχειρήματα, έχουμε αυτόν τον τύπο:
=SORTBY(A2:B10, B2:B10, -1)
Για λόγους απλότητας, χρησιμοποιούμε τον τύπο στο ίδιο φύλλο - τον εισάγουμε στο D2 και πατάμε το πλήκτρο Enter. Τα αποτελέσματα "διαχέονται" αυτόματα σε όσα κελιά χρειάζονται (D2:D10 στην περίπτωσή μας). Αλλά τεχνικά, ο τύπος βρίσκεται μόνο στο πρώτο κελί και η διαγραφή του από το D2 θα διαγράψει όλα τα αποτελέσματα.
Όταν χρησιμοποιείται σε άλλο φύλλο, ο τύπος παίρνει την ακόλουθη μορφή:
=SORTBY(Sheet1!A2:A10, Sheet1!B2:B10, -1)
Πού Φύλλο1 είναι το φύλλο εργασίας που περιέχει τα αρχικά δεδομένα.
Χρήση της συνάρτησης SORTBY στο Excel - παραδείγματα τύπων
Παρακάτω θα βρείτε μερικά ακόμη παραδείγματα χρήσης του SORTBY, τα οποία ελπίζουμε να αποδειχθούν χρήσιμα και διορατικά.
Ταξινόμηση με πολλαπλές στήλες
Ο βασικός τύπος που συζητήθηκε παραπάνω ταξινομεί τα δεδομένα ανά μία στήλη. Τι γίνεται όμως αν πρέπει να προσθέσετε ένα ακόμη επίπεδο ταξινόμησης;
Υποθέτοντας ότι ο πίνακας του δείγματός μας έχει δύο πεδία, Κατάσταση (στήλη Β) και Αξία (στήλη Γ) , επιθυμούμε να ταξινομήσουμε πρώτα κατά Κατάσταση αλφαβητικά, και στη συνέχεια ανά Αξία κατεβαίνοντας.
Για να ταξινομήσουμε με βάση δύο στήλες, απλά προσθέτουμε ένα ακόμη ζεύγος των by_array / sort_order επιχειρήματα:
- Συστοιχία είναι A2:C10 - αυτή τη φορά, θέλουμε να συμπεριλάβουμε και τις τρεις στήλες στα αποτελέσματα.
- By_array1 είναι B2:B10 - πρώτα, ταξινόμηση κατά Κατάσταση .
- Sort_order1 είναι 1 - ταξινομήστε αλφαβητικά από το Α έως το Ω.
- By_array2 είναι C2:C10 - τότε, ταξινόμηση κατά Αξία .
- Sort_order2 είναι -1 - ταξινόμηση από το μεγαλύτερο προς το μικρότερο.
Ως αποτέλεσμα, λαμβάνουμε τον ακόλουθο τύπο:
=SORTBY(A2:B10, B2:B10, 1, C2:C10, -1)
Το οποίο αναδιατάσσει τα δεδομένα μας ακριβώς όπως τα είχαμε καθοδηγήσει:
Προσαρμοσμένη ταξινόμηση στο Excel με έναν τύπο
Για να ταξινομήσετε τα δεδομένα με προσαρμοσμένη σειρά, μπορείτε είτε να χρησιμοποιήσετε τη λειτουργία Προσαρμοσμένης ταξινόμησης του Excel είτε να δημιουργήσετε έναν τύπο SORTBY MATCH με αυτόν τον τρόπο:
SORTBY(array, MATCH( range_to_sort , custom_list , 0))Ρίχνοντας μια πιο προσεκτική ματιά στο σύνολο των δεδομένων μας, πιθανόν να θεωρήσετε πιο βολικό να ταξινομήσετε τα έργα με βάση την κατάστασή τους "λογικά", π.χ. με βάση τη σημασία, παρά αλφαβητικά.
Για να γίνει αυτό, δημιουργούμε πρώτα μια προσαρμοσμένη λίστα με την επιθυμητή σειρά ταξινόμησης ( Σε εξέλιξη , Ολοκληρωμένο , Σε αναμονή ) πληκτρολογώντας κάθε τιμή σε ξεχωριστό κελί στην περιοχή E2:E4.
Και στη συνέχεια, χρησιμοποιώντας τον παραπάνω γενικό τύπο, παρέχουμε το εύρος πηγής για το array (A2:C10), το Κατάσταση στήλη για range_to_sort (B2:B10), και η προσαρμοσμένη λίστα που δημιουργήσαμε για την custom_list (E2:E4).
=SORTBY(A2:C10, MATCH(B2:B10, E2:E4, 0))
Ως αποτέλεσμα, έχουμε τα έργα ταξινομημένα με βάση την κατάστασή τους ακριβώς όπως χρειάζεται:
Για να ταξινομήσετε την προσαρμοσμένη λίστα με αντίστροφη σειρά, βάλτε -1 για το sort_order1 επιχείρημα:
=SORTBY(A2:C10, MATCH(B2:B10, E2:E4, 0), -1)
Και θα έχετε τα έργα ταξινομημένα προς την αντίθετη κατεύθυνση:
Θέλετε να ταξινομήσετε επιπλέον τις εγγραφές σε κάθε κατάσταση; Κανένα πρόβλημα. Απλά, προσθέστε ένα ακόμη επίπεδο ταξινόμησης στον τύπο, π.χ. κατά Αξία (C2:C10), και ορίστε την επιθυμητή σειρά ταξινόμησης, αύξουσα στην περίπτωσή μας:
=SORTBY(A2:C10, MATCH(B2:B10, E2:E5, 0), 1, C2:C10, 1)
Ένα μεγάλο πλεονέκτημα του τύπου SORTBY σε σχέση με τη λειτουργία Προσαρμοσμένης ταξινόμησης του Excel είναι ότι ο τύπος ενημερώνεται αυτόματα κάθε φορά που αλλάζουν τα αρχικά δεδομένα, ενώ η λειτουργία αυτή απαιτεί καθαρισμό και εκ νέου ταξινόμηση με κάθε αλλαγή.
Πώς λειτουργεί αυτή η φόρμουλα:
Όπως έχει ήδη αναφερθεί, η συνάρτηση SORTBY του Excel μπορεί να επεξεργαστεί μόνο πίνακες "ταξινόμησης κατά" των οποίων οι διαστάσεις είναι συμβατές με τον πηγαίο πίνακα. Καθώς ο πηγαίος μας πίνακας (C2:C10) περιέχει 9 σειρές και η προσαρμοσμένη λίστα (E2:E4) μόνο 3 σειρές, δεν μπορούμε να τον τροφοδοτήσουμε απευθείας στη συνάρτηση by_array Αντ' αυτού, χρησιμοποιούμε τη συνάρτηση MATCH για να δημιουργήσουμε έναν πίνακα 9 σειρών:
MATCH(B2:B10, E2:E5, 0)
Εδώ, χρησιμοποιούμε το Κατάσταση στήλη (B2:B10) ως τιμές αναζήτησης και την προσαρμοσμένη λίστα μας (E2:E5) ως πίνακα αναζήτησης. Το τελευταίο όρισμα τίθεται στο 0 για να αναζητήσουμε ακριβείς αντιστοιχίες. Ως αποτέλεσμα, παίρνουμε έναν πίνακα με 9 αριθμούς, καθένας από τους οποίους αντιπροσωπεύει τη σχετική θέση μιας δεδομένης Κατάσταση τιμή στην προσαρμοσμένη λίστα:
{1;3;2;1;3;2;2;1;2}
Αυτός ο πίνακας πηγαίνει κατευθείαν στο by_array όρισμα της συνάρτησης SORTBY και την αναγκάζει να τοποθετήσει τα δεδομένα με τη σειρά που αντιστοιχεί στα στοιχεία του πίνακα, δηλαδή πρώτα καταχωρήσεις που αντιπροσωπεύονται από 1, έπειτα καταχωρήσεις που αντιπροσωπεύονται από 2 κ.ο.κ.
Τυχαία ταξινόμηση στο Excel με έναν τύπο
Σε προηγούμενες εκδόσεις του Excel, μπορείτε να κάνετε μια τυχαία ταξινόμηση με τη συνάρτηση RAND, όπως εξηγείται σε αυτό το σεμινάριο: Πώς να ταξινομήσετε τυχαία μια λίστα στο Excel.
Στο νέο Excel, μπορείτε να χρησιμοποιήσετε μια πιο ισχυρή συνάρτηση RANDARRAY σε συνδυασμό με το SORTBY:
SORTBY( array , RANDARRAY(ROWS( array )))Πού array είναι τα δεδομένα προέλευσης που θέλετε να ανακατέψετε.
Αυτός ο γενικός τύπος λειτουργεί για μια λίστα που αποτελείται από μια μόνο στήλη καθώς και για μια σειρά πολλών στηλών.
Για παράδειγμα, για να ταξινομήσετε τυχαία μια λίστα σε A2:A10, χρησιμοποιήστε αυτόν τον τύπο:
=SORTBY(A2:A10, RANDARRAY(ROWS(A2:A10)))
Για να ανακατέψετε τα δεδομένα στα A2:C10 διατηρώντας τις γραμμές μαζί, χρησιμοποιήστε αυτό:
=SORTBY(A2:C10, RANDARRAY(ROWS(A2:C10)))
Πώς λειτουργεί αυτή η φόρμουλα:
Η συνάρτηση RANDARRAY παράγει έναν πίνακα τυχαίων αριθμών που θα χρησιμοποιηθεί για την ταξινόμηση, και τον περνάτε στην εντολή by_array όρισμα της SORTBY. Για να καθορίσετε πόσοι τυχαίοι αριθμοί θα δημιουργηθούν, μετράτε τον αριθμό των γραμμών στην περιοχή προέλευσης χρησιμοποιώντας τη συνάρτηση ROWS και "τροφοδοτείτε" αυτόν τον αριθμό στη συνάρτηση σειρές επιχείρημα του RANDARRAY. Αυτό είναι!
Σημείωση. Όπως και ο προκάτοχός της, η RANDARRAY είναι μια ασταθής συνάρτηση και δημιουργεί μια νέα σειρά τυχαίων αριθμών κάθε φορά που το φύλλο εργασίας υπολογίζεται εκ νέου. Ως αποτέλεσμα, τα δεδομένα σας θα επαναπροσδιορίζονται με κάθε αλλαγή στο φύλλο. Για να αποτρέψετε την αυτόματη επαναπροσδιορισμό, μπορείτε να χρησιμοποιήσετε την εντολή Ειδική επικόλληση >, Τιμές χαρακτηριστικό για την αντικατάσταση των τύπων με τις τιμές τους.
Ταξινόμηση κελιών με βάση το μήκος συμβολοσειράς
Για να ταξινομήσετε τα κελιά με βάση το μήκος των συμβολοσειρών κειμένου που περιέχουν, χρησιμοποιήστε τη συνάρτηση LEN για να μετρήσετε τον αριθμό των χαρακτήρων σε κάθε κελί και δώστε τα υπολογισμένα μήκη στη συνάρτηση by_array επιχείρημα του SORTBY. sort_order μπορεί να οριστεί σε 1 ή -1, ανάλογα με την προτιμώμενη σειρά ταξινόμησης.
Για να ταξινομήσετε τη συμβολοσειρά κειμένου από το μικρότερο προς το μεγαλύτερο:
SORTBY(array, LEN(array), 1)Για να ταξινομήσετε τη συμβολοσειρά κειμένου από το μεγαλύτερο προς το μικρότερο:
SORTBY(array, LEN(array), -1)Και εδώ είναι ένας τύπος που αποδεικνύει αυτή την προσέγγιση σε πραγματικά δεδομένα:
=SORTBY(A2:A7, LEN(A2:A7), 1)
Όπου A2:A7 είναι τα αρχικά κελιά που θέλετε να ταξινομήσετε κατά μήκος κειμένου σε αύξουσα σειρά:
SORTBY vs. SORT
Στην ομάδα των νέων δυναμικών συναρτήσεων του Excel, υπάρχουν δύο που έχουν σχεδιαστεί για ταξινόμηση. Παρακάτω παραθέτουμε τις βασικότερες διαφορές και ομοιότητες, καθώς και πότε είναι καλύτερο να χρησιμοποιείται η καθεμία.
- Σε αντίθεση με τη συνάρτηση SORT, η SORTBY δεν απαιτεί ο πίνακας "sort by" να είναι μέρος του πηγαίου πίνακα, ούτε χρειάζεται να εμφανίζεται στα αποτελέσματα. Έτσι, όταν η εργασία σας είναι να ταξινομήσετε ένα εύρος με βάση έναν άλλο ανεξάρτητο πίνακα ή μια προσαρμοσμένη λίστα, η SORTBY είναι η σωστή συνάρτηση που πρέπει να χρησιμοποιήσετε. Αν θέλετε να ταξινομήσετε ένα εύρος με βάση τις δικές του τιμές, τότε η SORT είναι πιο κατάλληλη.
- Και οι δύο συναρτήσεις υποστηρίζουν πολλαπλά επίπεδα ταξινόμησης και μπορούν να συνδυαστούν με άλλες δυναμικές και συμβατικές συναρτήσεις.
- Και οι δύο λειτουργίες είναι διαθέσιμες μόνο στους χρήστες του Excel 365 και του Excel 2021.
Η λειτουργία SORTBY του Excel δεν λειτουργεί
Σε περίπτωση που ο τύπος SORTBY σας επιστρέφει σφάλμα, είναι πιθανό να οφείλεται σε έναν από τους ακόλουθους λόγους.
Μη έγκυρα ορίσματα by_array
Το by_array τα ορίσματα πρέπει να είναι μία μόνο γραμμή ή μία μόνο στήλη και να είναι συμβατά σε μέγεθος με την array Για παράδειγμα, εάν array έχει 10 σειρές, by_array θα πρέπει επίσης να περιλαμβάνει 10 σειρές. Διαφορετικά εμφανίζεται σφάλμα #VALUE!
Μη έγκυρα ορίσματα sort_order
Το sort_order Τα ορίσματα μπορούν να είναι μόνο 1 (αύξουσα) ή -1 (φθίνουσα). Εάν δεν οριστεί καμία τιμή, το SORTBY έχει ως προεπιλογή αύξουσα σειρά. Εάν οριστεί οποιαδήποτε άλλη τιμή, επιστρέφεται σφάλμα #VALUE!
Δεν υπάρχει αρκετός χώρος για τα αποτελέσματα
Όπως και κάθε άλλη συνάρτηση δυναμικού πίνακα, η SORTBY διαχέει τα αποτελέσματα σε μια περιοχή που αλλάζει αυτόματα το μέγεθος και ενημερώνεται. Αν δεν υπάρχουν αρκετά κενά κελιά για να εμφανιστούν όλες οι τιμές, εκπέμπεται ένα σφάλμα #SPILL!
Το πηγαίο βιβλίο εργασίας είναι κλειστό
Εάν ένας τύπος SORTBY παραπέμπει σε ένα άλλο αρχείο Excel, πρέπει να είναι ανοιχτά και τα δύο βιβλία εργασίας. Εάν το βιβλίο εργασίας προέλευσης είναι κλειστό, εμφανίζεται σφάλμα #REF!
Η έκδοση του Excel δεν υποστηρίζει δυναμικούς πίνακες
Όταν χρησιμοποιείται σε μια προ-δυναμική έκδοση του Excel, η συνάρτηση SORT επιστρέφει ένα σφάλμα #NAME?.
Αυτός είναι ο τρόπος χρήσης της συνάρτησης SORTBY στο Excel για να κάνετε προσαρμοσμένη ταξινόμηση και άλλα πράγματα. Σας ευχαριστώ για την ανάγνωση και ελπίζω να σας δω στο blog μας την επόμενη εβδομάδα!
Βιβλίο ασκήσεων για κατέβασμα
Τύποι Excel SORTBY (.xlsx αρχείο)