
Γενική φόρμουλα
=FILTER(data,(range>=LARGE(IF(criteria),n))*(criteria))
Περίληψη
Για να φιλτράρετε δεδομένα για να δείξετε τις κορυφαίες τιμές n που πληρούν συγκεκριμένα κριτήρια, μπορείτε να χρησιμοποιήσετε τη συνάρτηση FILTER μαζί με τις συναρτήσεις LARGE και IF. Στο παράδειγμα που εμφανίζεται, ο τύπος στο F5 είναι:
=FILTER(data,(score>=LARGE(IF(group="b",score),3))*(group="b"))
όπου τα δεδομένα (B5: D16), η ομάδα (C5: C16) και η βαθμολογία (D5: D16) ονομάζονται εύρη.
Εξήγηση
Αυτός ο τύπος χρησιμοποιεί τη συνάρτηση FILTER για την ανάκτηση δεδομένων με βάση μια λογική δοκιμή που έχει κατασκευαστεί με τις συναρτήσεις LARGE και IF. Το αποτέλεσμα είναι οι κορυφαίες 3 βαθμολογίες στην ομάδα Β.
Η συνάρτηση FILTER εφαρμόζει κριτήρια με το όρισμα include. Σε αυτό το παράδειγμα, τα κριτήρια κατασκευάζονται με λογική λογική ως εξής:
(score>=LARGE(IF(group="b",score),3))*(group="b")
Η αριστερή πλευρά της έκφρασης στοχεύει βαθμολογίες μεγαλύτερες ή ίσες με την 3η υψηλότερη βαθμολογία στην ομάδα Β:
score>=LARGE(IF(group="b",score),3)
Η συνάρτηση IF χρησιμοποιείται για να βεβαιωθείτε ότι το LARGE λειτουργεί μόνο με βαθμολογίες ομάδας Β. Επειδή έχουμε συνολικά 12 βαθμολογίες, το IF επιστρέφει έναν πίνακα με 12 αποτελέσματα όπως αυτό:
(FALSE;65;FALSE;80;FALSE;88;FALSE;76;FALSE;86;FALSE;83)
Παρατηρήστε ότι οι μόνες βαθμολογίες που επιβιώνουν από τη λειτουργία είναι από την Ομάδα Β. Όλες οι άλλες βαθμολογίες είναι FALSE. Αυτός ο πίνακας επιστρέφεται απευθείας στο LARGE ως όρισμα πίνακα:
LARGE((FALSE;65;FALSE;80;FALSE;88;FALSE;76;FALSE;86;FALSE;83),3)
Το LARGE αγνοεί τις τιμές FALSE και επιστρέφει την 3η υψηλότερη βαθμολογία, 83.
Μπορούμε τώρα να απλοποιήσουμε τον τύπο σε:
=FILTER(data,(score>=83)*(group="b"))
που αποφασίζει να:
=FILTER(data,(0;0;0;0;0;1;0;0;0;1;0;1))
Τέλος, το FILTER επιστρέφει δίσκους για τους Mason, Annie και Cassidy, οι οποίοι διαχέονται στην περιοχή F5: H7.
Ταξινόμηση αποτελεσμάτων ανά βαθμολογία
Από προεπιλογή, το FILTER θα επιστρέψει αντίστοιχες εγγραφές με την ίδια σειρά που εμφανίζονται στα δεδομένα προέλευσης. Για να ταξινομήσετε τα αποτελέσματα με φθίνουσα σειρά ανά βαθμολογία, μπορείτε να τοποθετήσετε τον αρχικό τύπο ΦΙΛΤΡΟΥ μέσα στη συνάρτηση SORT ως εξής:
=SORT(FILTER(data,(score>=LARGE(IF(group="b",score),3))*(group="b")),3,-1)
Εδώ, το FILTER επιστρέφει αποτελέσματα απευθείας στη συνάρτηση SORT ως όρισμα πίνακα. Ο δείκτης ταξινόμησης ορίζεται σε 3 (σκορ) και η σειρά ταξινόμησης ορίζεται σε -1, για φθίνουσα σειρά.