Το Vlookup είναι μια βασική λειτουργία στο Excel και έχει γίνει ζωτικό μέρος της επεξεργασίας δεδομένων. Παρέχει ορισμένες από τις λειτουργίες που συνήθως συσχετίζετε με μια πλήρη βάση δεδομένων.
Τι γίνεται όμως αν θέλετε να αυτοματοποιήσετε αυτή τη λειτουργία; Ναι, αυτό είναι δυνατό, ειδικά αν γνωρίζετε πώς να χρησιμοποιείτε τη μητρική γλώσσα αυτοματισμού του Excel, VBA. Δείτε πώς μπορείτε να αυτοματοποιήσετε τη λειτουργία vlookup στο Excel VBA.
Η σύνταξη του Vlookup
Η σύνταξη της συνάρτησης vlookup είναι αρκετά απλή, αλλά έχει τέσσερις πτυχές στις οποίες πρέπει να εστιάσετε, ακόμη και όταν την αυτοματοποιείτε στο Excel VBA.
=vlookup (τιμή_αναζήτησης, συστοιχία_αναζήτησης, ευρετήριο_στήλης, ακριβής_αντιστοιχία/μερική_αντίστοιχη)
Τα ορίσματα της συνάρτησης έχουν την εξής σημασία:
- lookup_value: Αυτή είναι η κύρια τιμή που θέλετε να αναζητήσετε από τον πίνακα αναζήτησης.
- lookup_array: Αυτά είναι τα δεδομένα προέλευσης, τα οποία το lookup_value θα χρησιμοποιήσει ως αναφορά.
- στήλη_ευρετήριο: Στήλη για να επιστρέψετε την τιμή από.
- exact_match/partial_match: Χρησιμοποιήστε είτε 0 είτε 1 για να προσδιορίσετε τον τύπο αντιστοίχισης.
Προετοιμασία Δεδομένων
Αυτό το σύνολο δεδομένων έχει δύο μέρη: έναν πίνακα αναζήτησης και τα σημεία δεδομένων προορισμού.
Ο πίνακας αναζήτησης αποτελείται από τρεις στήλες, με δεδομένα που συμπληρώνουν τα πεδία Υποκατηγορία και Όνομα προϊόντος:
Ο πίνακας προορισμού έχει αντίστοιχες στήλες, χωρίς δεδομένα υποκατηγορίας ή ονόματος προϊόντος. Σημειώστε ότι οι τιμές στη στήλη Αναγνωριστικό παραγγελίας υπάρχουν επίσης στην ίδια στήλη στον πίνακα αναζήτησης:
Απευθείας χρήση του Vlookup σε υπολογιστικό φύλλο του Excel
Για να συμπληρώσετε τις στήλες προορισμού, Β και Γ, μπορείτε χρησιμοποιήστε τη συνάρτηση vlookup του Excel.
Στο κελί Β2, εισάγετε τον ακόλουθο τύπο:
=VLOOKUP($A2, $F$3:$H$17, 2, 0)
Ομοίως, στο κελί Γ2, εισάγετε αυτόν τον τύπο:
=VLOOKUP($A2, $F$3:$H$17, 3, 0)
Μπορείτε να σύρετε τον τύπο προς τα κάτω από το κελί B2 μέχρι το τέλος της στήλης, B17. Επαναλάβετε αυτή τη διαδικασία και για τη στήλη Γ. Οι τιμές για κάθε επόμενη καταχώρηση θα ενημερώνονται αυτόματα και στις δύο στήλες.
Οι τιμές που μεταβιβάζετε στη συνάρτηση vlookup είναι:
- Α2: Η τιμή αναζήτησης βρίσκεται σε αυτό το κελί.
- F3:H17: Αποτελείται από το εύρος αναζήτησης.
- 2/3: Οι στήλες αναφοράς από τις οποίες λαμβάνεται η τιμή.
- 0: Δηλώνει μια ακριβή αντιστοίχιση.
Λειτουργία Vlookup του Excel VBA
Η συνάρτηση vlookup έχει πολλές ομοιότητες είτε τη χρησιμοποιείτε απευθείας στο Excel είτε μέσω VBA. Είτε είστε αναλυτής δεδομένων που ασχολείται με σειρές δεδομένων είτε διαχειριστής αποθέματος που ασχολείται τακτικά με νέα προϊόντα, μπορείτε να επωφεληθείτε χρησιμοποιώντας το vlookup.
Όταν εργάζεστε με ένα εύρος δυναμικής αναζήτησης, είναι πάντα καλύτερο να αυτοματοποιείτε τους τύπους σας, για να αποφύγετε την επανειλημμένη εφαρμογή τύπων στο Excel. Αυτοματοποιώντας τη λειτουργία Vlookup σε VBA, μπορείτε να εκτελέσετε υπολογισμούς πολλών στηλών με ένα μόνο κλικ.
1. Εκτελέστε την Απαιτούμενη ρύθμιση
Ξεκινήστε ανοίγοντας το πρόγραμμα επεξεργασίας κωδικοποίησης (πατήστε Alt + F11 ή πλοηγηθείτε στο Προγραμματιστής καρτέλα) σε ένα νέο βιβλίο εργασίας του Excel και προσθέστε μια λειτουργική μονάδα για να ξεκινήσετε τη σύνταξη του κώδικά σας. Μέσα στο πρόγραμμα επεξεργασίας κώδικα, προσθέστε τις ακόλουθες γραμμές στο επάνω μέρος του παραθύρου κωδικοποίησης για να δημιουργήσετε μια υπο-ρουτίνα:
Υπο vlookup_fn1()Τέλος υπο
Η υπο-ρουτίνα είναι ένα κοντέινερ για τον κώδικα VBA και είναι κρίσιμης σημασίας για την επιτυχή εκτέλεση του. Μια εναλλακτική είναι να δημιουργήστε μια φόρμα χρήστη VBA για να κάνετε το UI σας πιο διαδραστικό.
2. Δηλώστε τις μεταβλητές σας και δημιουργήστε τα εύρη αναφοράς σας
Αρχικά, πρέπει να δηλώσετε τους μεταβλητούς τύπους δεδομένων χρησιμοποιώντας το Αμυδρός δήλωση:
Dim i ως ακέραιος αριθμός, lastrow όσο μακρύς
Στη συνέχεια, δημιουργήστε ένα τελευταία μεταβλητή, για να αποθηκεύσετε την τιμή της τελευταίας συμπληρωμένης σειράς εντός του εύρους αναζήτησης. Η συνάρτηση lastrow χρησιμοποιεί το τέλος (xldown) λειτουργία για τον υπολογισμό της αναφοράς τελικής σειράς εντός του καθορισμένου εύρους.
Σε αυτήν την περίπτωση, η μεταβλητή lastrow αποθηκεύει την τιμή της τελευταίας συμπληρωμένης σειράς του εύρους αναζήτησης,17.
lastrow = Φύλλα ("Φύλλο 2"). Εύρος ("F3"). Τέλος (xlΚάτω). Σειρά
Στο παραπάνω παράδειγμα, ο πίνακας προορισμού εκτείνεται από A2:C17, ενώ ο πίνακας προέλευσης εκτείνεται από F2:H17. Ο τύπος vlookup θα κάνει βρόχο σε κάθε τιμή που είναι αποθηκευμένη στη στήλη Α, θα την αναζητήσει στον πίνακα προέλευσης και θα επικολλήσει τις αντίστοιχες εγγραφές στις στήλες Β και Γ.
Ωστόσο, πριν μεταβείτε στον βρόχο, πρέπει να αποθηκεύσετε τις τιμές εύρους σε μια νέα μεταβλητή (my_range), ως εξής:
my_range = Φύλλα ("Φύλλο2").Εύρος ("F3:H" & τελευταία σειρά)
Πρέπει να ορίσετε ρητά την αναφορά κελιού εκκίνησης (F3) και την αναφορά της τελικής στήλης (H). Το VBA προσθέτει αυτόματα την τιμή της σειράς για να ολοκληρώσει τον πίνακα αναζήτησης.
3. Γράψτε έναν βρόχο για να κυκλώσετε μέσα από κάθε τιμή αναζήτησης
Πριν γράψετε τον βρόχο, ορίστε την τιμή της αρχικής σειράς, 2. Ο καθορισμός μιας αρχικής τιμής για τον βρόχο σας είναι απαραίτητος καθώς αντιμετωπίζετε δυναμικά στοιχεία. Στον πίνακα προορισμού, η σειρά 2 είναι η πρώτη σειρά των δεδομένων. Αλλάξτε αυτήν την τιμή εάν τα δεδομένα σας ξεκινούν σε διαφορετική σειρά.
i = 2
Μπορείτε να χρησιμοποιήσετε α κάνω-ενώ βρόχο για την επεξεργασία κάθε σειράς, ξεκινώντας από τη σειρά 2 και τελειώνοντας στη σειρά 17. Όπως και ο υπόλοιπος κώδικας, αυτή η πτυχή είναι δυναμική. ο βρόχος θα τρέχει έως ότου η συνθήκη είναι ψευδής. Χρησιμοποιήστε τη συνθήκη για να ελέγξετε για μη κενή τιμή στο πρώτο κελί της τρέχουσας σειράς.
Do while len (Φύλλα("Φύλλο2").Κελιά (i, 1).τιμή) <> 0
Μέσα στον βρόχο, μπορείτε να καλέσετε τη συνάρτηση VLookup για να συμπληρώσετε τα κελιά:
Φύλλα("Φύλλο2").Κελιά (i, 2).Τιμή = _ Εφαρμογή. Λειτουργία φύλλου εργασίας. VLookup (Φύλλα("Φύλλο2") _ .Κελιά (i, 1).Τιμή, εύρος_μου, 2, False) Φύλλα("Φύλλο2").Κελιά (i, 3).Τιμή = _ Εφαρμογή. Λειτουργία φύλλου εργασίας. VLookup (Φύλλα("Φύλλο2") _ .Κελιά (i, 1).Τιμή, εύρος_μου, 3, False)
Αυτές οι δηλώσεις ορίζουν την τιμή των κελιών στην τρέχουσα σειρά, στις στήλες 2 και 3 αντίστοιχα. Χρησιμοποιούν το Λειτουργία φύλλου εργασίας αντικείμενο να καλέσετε το VLookup συνάρτηση, μεταβιβάζοντας την αντίστοιχη τιμή από τη στήλη 1 για αναζήτηση. Περνούν επίσης το εύρος που ορίσατε προηγουμένως και το ευρετήριο της σχετικής στήλης για να λάβουν την τελική τιμή.
Ο κώδικας vlookup είναι έτοιμος, αλλά πρέπει να αυξάνετε τη μεταβλητή της σειράς κάθε φορά γύρω από τον βρόχο:
i = i + 1
Κάθε φορά που εκτελείται ο βρόχος, αυξάνει την τιμή του Εγώ κατά 1. Θυμηθείτε, η τιμή της αρχικής σειράς είναι 2 και η αύξηση γίνεται κάθε φορά που εκτελείται ο βρόχος. Χρησιμοποιήστε το βρόχος λέξη-κλειδί για να ορίσετε το τέλος του μπλοκ κώδικα του βρόχου.
Όταν εκτελείτε ολόκληρο τον κώδικα, θα συμπληρώσει τα αποτελέσματα και στις δύο στήλες, με βάση τις τιμές στον πίνακα προέλευσης.
Εδώ είναι ολόκληρος ο κώδικας για αναφορά:
Sub vlookup_fn1() Dim i As Integer lastrow = Sheets("Feet2").Range("F3").End (xlDown).Row my_range = Sheets("Sheet2").Range("F3:H" & lastrow) i = 2 Do while Len (Φύλλα("Φύλλο2").Κελιά (i, 1).Τιμή) <> 0 Σε σφάλμα Συνέχιση Επόμενων Φύλλων("Φύλλο2").Κελιά (i, 2).Τιμή = _ Εφαρμογή. Λειτουργία φύλλου εργασίας. VLookup (Φύλλα("Φύλλο2") _ .Κελιά (i, 1).Τιμή, εύρος_μου, 2, False) Φύλλα("Φύλλο2").Κελιά (i, 3).Τιμή = _ Εφαρμογή. Λειτουργία φύλλου εργασίας. VLookup (Φύλλα("Φύλλο2") _ .Κελιά (i, 1).Τιμή, εύρος_μου, 3, False) i = i + 1 LoopEnd Sub
4. Δημιουργήστε ένα κουμπί για να εκτελέσετε τον κώδικα
Με τον κώδικα εκτός λειτουργίας, μπορείτε να δημιουργήσετε ένα κουμπί στο βιβλίο εργασίας του Excel για να το εκτελέσετε με ένα μόνο κλικ. Εισαγάγετε το σχήμα που προτιμάτε σε ένα κενό φύλλο Excel, κάντε δεξί κλικ πάνω του και κάντε κλικ στο Εκχώρηση μακροεντολής επιλογή.
Μέσα στο πλαίσιο διαλόγου, επιλέξτε το όνομα της υπο-ρουτίνας σας και κάντε κλικ στο Εντάξει.
Όταν θέλετε να εκτελέσετε τον κώδικά σας, κάντε κλικ στο κουμπί για να δείτε πώς συμπληρώνονται αμέσως τα δεδομένα.
Χρήση του Excel VBA για την αυτοματοποίηση των λειτουργιών αναζήτησης
Το Excel VBA είναι μια ευέλικτη γλώσσα, η οποία είναι καλά συντονισμένη ώστε να διευκολύνει την αυτοματοποίηση στις διάφορες πτυχές του MS Excel. Υπάρχουν πολλές επιλογές στο MS Excel VBA, από την αυτοματοποίηση των λειτουργιών του Excel έως τη δημιουργία περίπλοκων πινάκων αυτόματης ανάλυσης.
Όταν εργάζεστε με διαφορετικά τμήματα του Excel, μπορείτε να πειραματιστείτε με διάφορες επιλογές για να κάνετε τη ζωή σας πιο εύκολη και αποτελεσματική.