
Γενική φόρμουλα
=FILTER(data,(header="a")+(header="b"))
Περίληψη
Για να φιλτράρετε στήλες, δώστε έναν οριζόντιο πίνακα για το όρισμα include Στο παράδειγμα που εμφανίζεται, ο τύπος στο I5 είναι:
=FILTER(B5:G12,(B4:G4="a")+(B4:G4="c")+(B4:G4="e"))
Το αποτέλεσμα είναι ένα φιλτραρισμένο σύνολο δεδομένων που περιέχει μόνο τις στήλες A, C και E από τα δεδομένα προέλευσης.
Εξήγηση
Αν και το ΦΙΛΤΡΟ χρησιμοποιείται πιο συχνά για το φιλτράρισμα σειρών, μπορείτε επίσης να φιλτράρετε στήλες, το κόλπο είναι να προμηθεύσετε έναν πίνακα με τον ίδιο αριθμό στηλών με τα δεδομένα προέλευσης. Σε αυτό το παράδειγμα, κατασκευάζουμε τον πίνακα που χρειαζόμαστε με λογική boolean, που ονομάζεται επίσης άλγεβρα Boolean.
Στη Boolean άλγεβρα, ο πολλαπλασιασμός αντιστοιχεί στη λογική AND και η προσθήκη αντιστοιχεί στη λογική OR. Στο παράδειγμα που εμφανίζεται, χρησιμοποιούμε Boolean άλγεβρα με λογική OR (προσθήκη) για να στοχεύσουμε μόνο τις στήλες A, C και E ως εξής:
(B4:G4="a")+(B4:G4="c")+(B4:G4="e")
Αφού αξιολογηθεί κάθε παράσταση, έχουμε τρεις πίνακες τιμών TRUE / FALSE:
(TRUE,FALSE,FALSE,FALSE,FALSE,FALSE)+ (FALSE,FALSE,TRUE,FALSE,FALSE,FALSE)+ (FALSE,FALSE,FALSE,FALSE,TRUE,FALSE)
Η μαθηματική λειτουργία (προσθήκη) μετατρέπει τις τιμές TRUE και FALSE σε 1s και 0s, ώστε να μπορείτε να σκεφτείτε τη λειτουργία ως εξής:
(1,0,0,0,0,0)+ (0,0,1,0,0,0)+ (0,0,0,0,1,0)
Στο τέλος, έχουμε έναν μόνο οριζόντιο πίνακα 1s και 0s:
(1,0,1,0,1,0)
που παραδίδεται απευθείας στη συνάρτηση FILTER ως όρισμα include:
=FILTER(B5:G12,(1,0,1,0,1,0))
Παρατηρήστε ότι υπάρχουν 6 στήλες στα δεδομένα προέλευσης και 6 τιμές στον πίνακα, όλες είτε 1 είτε 0. Το ΦΙΛΤΡΟ χρησιμοποιεί αυτόν τον πίνακα ως φίλτρο για να περιλαμβάνει μόνο τις στήλες 1, 3 και 5 από τα δεδομένα προέλευσης. Οι στήλες 2, 4 και 6 καταργούνται. Με άλλα λόγια, οι μόνες στήλες που επιβιώνουν σχετίζονται με 1s.
Με τη λειτουργία MATCH
Η εφαρμογή λογικής Ή με προσθήκη, όπως φαίνεται παραπάνω, λειτουργεί καλά, αλλά δεν έχει καλή κλίμακα και καθιστά αδύνατη τη χρήση ενός εύρους τιμών από ένα φύλλο εργασίας ως κριτήρια. Εναλλακτικά, μπορείτε να χρησιμοποιήσετε τη συνάρτηση MATCH μαζί με τη συνάρτηση ISNUMBER για να δημιουργήσετε το όρισμα include πιο αποτελεσματικά:
=FILTER(B5:G12,ISNUMBER(MATCH(B4:G4,("a","c","e"),0)))
Η συνάρτηση MATCH έχει ρυθμιστεί ώστε να αναζητά όλες τις κεφαλίδες στηλών στη σταθερά πίνακα ("a", "c", "e") όπως φαίνεται. Το κάνουμε έτσι ώστε το αποτέλεσμα από το MATCH να έχει διαστάσεις συμβατές με τα δεδομένα προέλευσης, τα οποία περιέχουν 6 στήλες. Σημειώστε επίσης ότι το τρίτο όρισμα στο MATCH έχει οριστεί ως μηδέν για να εξαναγκάσει έναν ακριβή αγώνα.
Μετά την εκτέλεση του MATCH, επιστρέφει έναν πίνακα όπως αυτό:
(1,#N/A,2,#N/A,3,#N/A)
Αυτός ο πίνακας πηγαίνει απευθείας στο ISNUMBER, ο οποίος επιστρέφει έναν άλλο πίνακα:
(TRUE,FALSE,TRUE,FALSE,TRUE,FALSE)
Όπως παραπάνω, αυτός ο πίνακας είναι οριζόντιος και περιέχει 6 τιμές διαχωρισμένες με κόμματα. Το FILTER χρησιμοποιεί τον πίνακα για να αφαιρέσει τις στήλες 2, 4 και 6.
Με μια σειρά
Δεδομένου ότι οι κεφαλίδες στηλών βρίσκονται ήδη στο φύλλο εργασίας στην περιοχή I4: K4, ο παραπάνω τύπος μπορεί εύκολα να προσαρμοστεί ώστε να χρησιμοποιεί το εύρος απευθείας όπως αυτό
=FILTER(B5:G12,ISNUMBER(MATCH(B4:G4,I4:K4,0)))
Το εύρος I4: K4 αξιολογείται ως ("a", "c", "e") και συμπεριφέρεται ακριβώς όπως η σταθερά του πίνακα στον παραπάνω τύπο.