Πίνακας περιεχομένων
Αν ψάχνετε τρόπους για να φίλτρο με πίνακα πολλαπλών κριτηρίων στο Excel VBA Το φιλτράρισμα ενός μεγάλου συνόλου δεδομένων με βάση πολλαπλά κριτήρια μπορεί να γίνει ευκολότερο με τη βοήθεια του VBA κωδικούς αντί για τη χρήση της συμβατικής λειτουργίας του Excel.
Ας ξεκινήσουμε λοιπόν το κύριο άρθρο μας.
Λήψη βιβλίου εργασίας
Φίλτρο με πολλαπλά κριτήρια.xlsm7 τρόποι για να φιλτράρετε με πολλαπλά κριτήρια σε συστοιχία χρησιμοποιώντας το Excel VBA
Στο παρακάτω σύνολο δεδομένων, έχουμε κάποιες εγγραφές βαθμών που αντιστοιχούν στο όνομα των μαθητών και στα id τους. Θα προσπαθήσουμε να φιλτράρουμε αυτό το σύνολο δεδομένων με βάση διάφορα κριτήρια ως πίνακα χρησιμοποιώντας κάποιους κωδικούς.
Έχουμε χρησιμοποιήσει Microsoft Excel 365 έκδοση εδώ, μπορείτε να χρησιμοποιήσετε οποιεσδήποτε άλλες εκδόσεις ανάλογα με την ευκολία σας.
Μέθοδος-1: Φίλτρο με πολλαπλά κριτήρια ως κείμενα σε συστοιχία
Εδώ, θα προσπαθήσουμε να φιλτράρουμε το ακόλουθο σύνολο δεδομένων με βάση το Όνομα μαθητή στήλη για πολλαπλά κριτήρια που περιέχουν τις συμβολοσειρές Emily , Daniel , και Gabriel σε έναν πίνακα.
Βήμα-01 :
➤ Πηγαίνετε στο Προγραμματιστής Καρτέλα>>, Visual Basic Επιλογή.
Στη συνέχεια, το Visual Basic Editor θα ανοίξει.
➤ Πηγαίνετε στο Εισαγωγή Καρτέλα>>, Ενότητα Επιλογή.
Μετά από αυτό, ένα Ενότητα θα δημιουργηθεί.
Βήμα-02 :
➤ Γράψτε τον ακόλουθο κώδικα
Sub filter_with_array_as_criteria_1() ActiveSheet.Range("B3:D3").AutoFilter Field:=2, _ Operator:=xlFilterValues, Criteria1:=Array("Emily", "Daniel", "Gabriel") End Sub
Εδώ, δηλώσαμε τα ονόματα των επικεφαλίδων στο εύρος B3:D3 στην οποία θα εφαρμόσουμε το φίλτρο και Πεδίο:=2 είναι ο αριθμός στήλης αυτής της περιοχής βάσει της οποίας θα κάνουμε αυτή τη διαδικασία φιλτραρίσματος.
Τέλος, έχουμε ορίσει τα κριτήρια ως έναν πίνακα για τη δήλωση των ονομάτων πολλών μαθητών, όπως Emily , Daniel , και Gabriel .
➤ Τύπος F5 .
Στη συνέχεια, θα έχετε το σύνολο δεδομένων φιλτραρισμένο με πολλαπλά κριτήρια ώστε να εμφανίζονται τα ονόματα των μαθητών και τα αντίστοιχα Ids και Μαρκς για τους μαθητές Emily , Daniel , και Gabriel .
Διαβάστε περισσότερα: Φιλτράρισμα πολλαπλών κριτηρίων στο Excel (4 κατάλληλοι τρόποι)
Μέθοδος-2: Φίλτρο με πολλαπλά αριθμητικά κριτήρια σε συστοιχία χρησιμοποιώντας το Excel VBA
Εδώ, θα φιλτράρουμε το ακόλουθο σύνολο δεδομένων για τα ids 101135 , 101137 , και 101138 χρησιμοποιώντας αυτούς τους αριθμούς ως πολλαπλά κριτήρια σε έναν πίνακα.
Βήματα :
➤ Follow Βήμα-01 του Μέθοδος-1 .
➤ Γράψτε τον ακόλουθο κώδικα
Sub filter_with_array_as_criteria_2() ActiveSheet.Range("B3:D3").AutoFilter Field:=1, Operator:=xlFilterValues, _ Criteria1:=Array("101135", "101137", "101138") End Sub
Εδώ, δηλώσαμε τα ονόματα των επικεφαλίδων στο εύρος B3:D3 στην οποία θα εφαρμόσουμε το φίλτρο και Πεδίο:=2 είναι ο αριθμός στήλης αυτής της περιοχής βάσει της οποίας θα κάνουμε αυτή τη διαδικασία φιλτραρίσματος.
Τέλος, έχουμε ορίσει τα κριτήρια ως έναν πίνακα για τη δήλωση των αναγνωριστικών πολλαπλών μαθητών, όπως 101135 , 101137 , και 101138 και τα βάλαμε μέσα σε εισαγωγικά για να τα προσδιορίσουμε ως συμβολοσειρές, επειδή AutoFilter θα λειτουργήσει μόνο για έναν πίνακα συμβολοσειρών.
➤ Τύπος F5 .
Μετά από αυτό, θα λάβετε τα ονόματα και τους βαθμούς των μαθητών που έχουν αναγνωριστικά 101135 , 101137 , και 101138 .
Διαβάστε περισσότερα: VBA για να λάβετε μοναδικές τιμές από τη στήλη σε συστοιχία στο Excel (3 κριτήρια)
Μέθοδος-3: Ορισμός πολλαπλών κριτηρίων σε μια σειρά για χρήση ως συστοιχία
Εδώ, έχουμε παραθέσει τα κριτήρια στο Λίστα στήλη που περιέχει τα ids 101134 , 101135 , και 101136 με βάση την οποία θα κάνουμε τη διαδικασία φιλτραρίσματος.
Βήματα :
➤ Follow Βήμα-01 του Μέθοδος-1 .
➤ Γράψτε τον ακόλουθο κώδικα
Sub filter_with_array_as_criteria_3() Dim ID_range, k As Variant ID_range = Application.Transpose(ActiveSheet.Range("F4:F6")) For k = LBound(ID_range) To UBound(ID_range) ID_range(k) = CStr(ID_range(k)) Next k ActiveSheet.Range("B3:D3").AutoFilter Field:=1, Operator:=xlFilterValues, _ Criteria1:=ID_range End Sub
Εδώ, έχουμε δηλώσει ID_range , k ως Παραλλαγή και ID_range είναι ο πίνακας που θα αποθηκεύει πολλαπλά κριτήρια, και k είναι η προσαύξηση που κυμαίνεται από το κατώτερο όριο έως το ανώτερο όριο αυτού του πίνακα. Για να έχουμε το κατώτερο και το ανώτερο όριο χρησιμοποιήσαμε το Λειτουργία LBOUND και Λειτουργία UBOUND αντίστοιχα.
Το Βρόχος FOR χρησιμοποιείται για τη μετατροπή των τιμών που δεν είναι συμβολοσειρές στον πίνακα σε συμβολοσειρές με τη βοήθεια της εντολής Συνάρτηση CStr . Τέλος, έχουμε χρησιμοποιήσει αυτόν τον πίνακα ως Κριτήρια1 .
➤ Τύπος F5 .
Στη συνέχεια, θα λάβετε τα ονόματα και τους βαθμούς των μαθητών που έχουν αναγνωριστικά 101134 , 101135 , και 101136 .
Διαβάστε περισσότερα: Φίλτρο διαφορετικής στήλης με πολλαπλά κριτήρια στο Excel VBA
Παρόμοιες αναγνώσεις
- Πώς να φιλτράρετε μοναδικές τιμές στο Excel (8 εύκολοι τρόποι)
- Εκτέλεση προσαρμοσμένου φίλτρου στο Excel (5 τρόποι)
- Υπολογισμός του μέσου όρου μιας συστοιχίας με VBA (μακροεντολές, UDF και UserForm)
- Συντόμευση για το φίλτρο του Excel (3 γρήγορες χρήσεις με παραδείγματα)
Μέθοδος-4: Χρήση των λειτουργιών SPLIT και JOIN για τη δημιουργία συστοιχίας με πολλαπλά κριτήρια
Εδώ, θα χρησιμοποιήσουμε τον ακόλουθο κατάλογο στο Λίστα στήλη ως πίνακα και για το σωστό φιλτράρισμα του συνόλου δεδομένων θα χρησιμοποιήσουμε επίσης το Λειτουργία SPLIT , Λειτουργία JOIN , και Λειτουργία TRANSPOSE σε ένα VBA κωδικός.
Βήματα :
➤ Follow Βήμα-01 του Μέθοδος-1 .
➤ Γράψτε τον ακόλουθο κώδικα
Sub filter_with_array_as_criteria_4() ActiveSheet.Range("B3:D3").AutoFilter Field:=1, Operator:=xlFilterValues, _ Criteria1:=Split(Join(Application.Transpose(Range("F4:F6")), ","), ",") End Sub
Ορίστε, TRANSPOSE θα μετατρέψει το 2D array σε ένα 1D array αλλιώς AutoFilter δεν θα λειτουργήσει, JOIN θα ενώσει κάθε μία από τις τιμές σε έναν πίνακα συμβολοσειρών, και τέλος, SPLIT θα αναλύσει κάθε συμβολοσειρά για να τις εισάγει ξεχωριστά ως κριτήρια για το φιλτράρισμα του συνόλου δεδομένων.
➤ Τύπος F5 .
Τέλος, θα λάβετε τα ονόματα και τους βαθμούς των μαθητών που έχουν αναγνωριστικά 101134 , 101135 , και 101136 .
Διαβάστε περισσότερα: Πώς να διαχωρίσετε μια συμβολοσειρά σε μια συστοιχία στην VBA (3 τρόποι)
Μέθοδος-5: Φίλτρο με πολλαπλά κριτήρια σε βρόχο για συστοιχία με VBA
Σε αυτή την ενότητα, θα φιλτράρουμε το ακόλουθο σύνολο δεδομένων ανάλογα με το Student Id στήλη για πολλαπλά κριτήρια, όπως αναφέρονται στο Λίστα στήλη.
Βήματα :
➤ Follow Βήμα-01 του Μέθοδος-1 .
➤ Γράψτε τον ακόλουθο κώδικα
Sub filter_with_array_as_criteria_5() Dim k As Integer Dim ID_range(100) As String For k = 4 To 6 ID_range(k) = ActiveSheet.Range("F" & k) Next k ActiveSheet.Range("B3:D3").AutoFilter Field:=1, Operator:=xlFilterValues, _ Criteria1:=ID_range End Sub
Εδώ, έχουμε δηλώσει k ως Ακέραιος αριθμός , ID_range(100) ως Συμβολοσειρά όπου ID_range είναι ένας πίνακας που θα αποθηκεύει έως και 100 Για να καθορίσουμε τις τιμές για αυτόν τον πίνακα εδώ χρησιμοποιήσαμε το Βρόχος FOR για το k από το 4 στο 6 ως οι αριθμοί των γραμμών του Λίστα στήλη και F είναι το όνομα της στήλης.
Τέλος, χρησιμοποιήσαμε αυτόν τον πίνακα ως Κριτήρια1 για το AutoFilter .
➤ Τύπος F5 .
Τελικά, θα λάβετε τα ονόματα και τους βαθμούς των μαθητών που έχουν αναγνωριστικά 101134 , 101135 , και 101136 .
Διαβάστε περισσότερα: Φιλτράρισμα πολλαπλών κριτηρίων στο Excel με VBA (και οι δύο τύποι AND και OR)
Μέθοδος-6: Χρήση ονομαστικής περιοχής για πολλαπλά κριτήρια
Εδώ, έχουμε παραθέσει μερικά ονόματα των μαθητών στο Λίστα στήλη και ονόμασε αυτό το εύρος ως Φοιτητής Χρησιμοποιώντας αυτό το ονομαστικό εύρος θα ορίσουμε έναν πίνακα που θα περιέχει πολλαπλά κριτήρια για την AutoFilter χαρακτηριστικό.
Βήματα :
➤ Follow Βήμα-01 του Μέθοδος-1 .
➤ Γράψτε τον ακόλουθο κώδικα
Sub filter_with_array_as_criteria_6() Dim Student_range, k As Variant Student_range = Application.Transpose(ActiveSheet.Range("Student")) ActiveSheet.Range("B3:D3")).AutoFilter Field:=2, _ Operator:=xlFilterValues, Criteria1:=Student_range End Sub
Εδώ, έχουμε δηλώσει Student_range , k ως Παραλλαγή , και χρησιμοποίησε το Λειτουργία TRANSPOSE για να μετατρέψετε το 2D πίνακας της ονομαστικής περιοχής Φοιτητής σε ένα 1D και στη συνέχεια την αποθήκευσε στο Student_range Στη συνέχεια, χρησιμοποιείται ως Κριτήρια1 για το AutoFilter μέθοδος.
➤ Τύπος F5 .
Στη συνέχεια, θα έχετε το σύνολο δεδομένων φιλτραρισμένο με πολλαπλά κριτήρια ώστε να εμφανίζονται τα ονόματα των μαθητών και τα αντίστοιχα Ids και Μαρκς για τους μαθητές Jefferson , Emily , και Sara .
Σχετικό περιεχόμενο: VBA για την αντιμετάθεση συστοιχίας στο Excel (3 μέθοδοι)
Μέθοδος-7: Φιλτράρισμα πίνακα με πολλαπλά κριτήρια σε μια συστοιχία
Εδώ, έχουμε τα εξής Πίνακας του οποίου το όνομα είναι Πίνακας1 και χρησιμοποιώντας το Excel VBA θα προσπαθήσουμε να φιλτράρουμε αυτόν τον πίνακα με βάση τα ονόματα Emily , Daniel , και Gabriel ως πολλαπλά κριτήρια σε έναν πίνακα.
Βήματα :
➤ Follow Βήμα-01 του Μέθοδος-1 .
➤ Γράψτε τον ακόλουθο κώδικα
Sub filter_with_array_as_criteria_7() ActiveSheet.ListObjects("Table1").Range.AutoFilter Field:=2, _ Operator:=xlFilterValues, Criteria1:=Array("Emily", "Daniel", "Gabriel") End Sub
Ορίστε, ListObjects("Table1") χρησιμοποιείται για τον ορισμό του πίνακα Πίνακας1 , Πεδίο:=2 για τον καθορισμό της δεύτερης στήλης αυτής της περιοχής ως βάση της διαδικασίας φιλτραρίσματος και τέλος έχουμε ορίσει έναν πίνακα που περιέχει πολλαπλά ονόματα για Κριτήρια1 .
➤ Τύπος F5 .
Τελικά, θα έχετε το σύνολο δεδομένων φιλτραρισμένο για πολλαπλά κριτήρια ώστε να εμφανίζει το όνομα των μαθητών και τα αντίστοιχα Ids και Μαρκς για τους μαθητές Emily , Daniel , και Gabriel .
Διαβάστε περισσότερα: Excel VBA: Φίλτρο πίνακα με βάση την τιμή κελιού (6 εύκολες μέθοδοι)
Τμήμα πρακτικής
Για να εξασκηθείτε μόνοι σας, σας παρέχουμε ένα Πρακτική τμήμα όπως παρακάτω σε ένα φύλλο με όνομα Πρακτική . Παρακαλώ κάντε το μόνοι σας.
Συμπέρασμα
Σε αυτό το άρθρο, προσπαθήσαμε να καλύψουμε τους τρόπους φιλτραρίσματος με πολλαπλά κριτήρια ως πίνακα χρησιμοποιώντας το Excel VBA Αν έχετε οποιεσδήποτε προτάσεις ή ερωτήσεις, μη διστάσετε να τις μοιραστείτε στο τμήμα σχολίων.