Αγώνας ευρετηρίου VBA - Τρόπος χρήσης της λειτουργίας ευρετηρίου ευρετηρίου στο VBA (Παραδείγματα)

Πίνακας περιεχομένων

Αντιστοίχιση ευρετηρίου σε VBA

Η συνάρτηση INDEX & MATCH στο συνδυασμό VBA είναι η εναλλακτική λύση στη συνάρτηση VLOOKUP στο excel. Στο VBA, δεν έχουμε την πολυτέλεια να χρησιμοποιήσουμε τη λειτουργία INDEX & MATCH άμεσα, επειδή αυτές οι δύο λειτουργίες δεν αποτελούν μέρος των ενσωματωμένων συναρτήσεων VBA. Ωστόσο, μπορούμε ακόμα να τα χρησιμοποιήσουμε ως μέρος της κλάσης λειτουργίας φύλλου εργασίας.

Πώς να χρησιμοποιήσετε το Index Match στο VBA; (Βήμα βήμα)

Για παράδειγμα, δείτε τα παρακάτω δεδομένα.

Στα παραπάνω δεδομένα, η τιμή αναζήτησης είναι το όνομα τμήματος και βάσει αυτού του ονόματος τμήματος, πρέπει να εξαγάγουμε το ποσό του μισθού.

Αλλά το πρόβλημα εδώ είναι ότι η στήλη αποτελεσμάτων είναι εκεί στην πρώτη και η στήλη τιμής αναζήτησης στη συνέχεια είναι η στήλη αποτελεσμάτων. Σε αυτήν την περίπτωση, το VLOOKUP δεν μπορεί να ανακτήσει το ποσό του μισθού επειδή το VLOOKUP λειτουργεί μόνο από τα δεξιά προς τα αριστερά και όχι από τα αριστερά προς τα δεξιά.

Σε αυτές τις περιπτώσεις, πρέπει να χρησιμοποιήσουμε τον τύπο συνδυασμού της συνάρτησης VBA INDEX & MATCH. Ας εκτελέσουμε το έργο της εύρεσης του μισθού κάθε τμήματος στον κώδικα VBA.

Βήμα 1: Ξεκινήστε τη ρουτίνα του ήλιου.

Βήμα 2: Δηλώστε τη μεταβλητή VBA Integer.

Κώδικας:

Υπο INDEX_MATCH_Παράδειγμα1 () Dim k ως ακέραιο τελικό υπο

Βήμα 3: Τώρα ανοίξτε για το επόμενο βρόχο στο VBA.

Κώδικας:

Υπο INDEX_MATCH_ Παράδειγμα 1 () Dim k As Integer For k = 2 to 5 Next k End Sub

Βήμα 4: Μέσα στο βρόχο VBA, εκτελέστε τον τύπο. Στην στήλη, πρέπει να εφαρμόσουμε τον τύπο, οπότε ο κώδικας είναι CELLS (k, 5). Value =

Κώδικας:

Υπο INDEX_MATCH_ Παράδειγμα 1 () Dim k As Integer For k = 2 to 5 Cells (k, 5). Value = Next k End Sub

Βήμα 5: Σε αυτό το κελί, πρέπει να εφαρμόσουμε τον τύπο VBA INDEX & MATCH. Όπως είπα, πρέπει να χρησιμοποιήσουμε αυτές τις λειτουργίες ως Λειτουργία φύλλου εργασίας στην κλάση VBA, οπότε ανοίξτε την κλάση λειτουργίας φύλλου εργασίας.

Κώδικας:

Sub INDEX_MATCH_Example1 () Dim k As Integer For k = 2 to 5 Cells (k, 5). Value = WorksheetFunction. Επόμενο k End Sub

Βήμα 6: Μετά την είσοδο στην κλάση λειτουργίας φύλλου εργασίας, μπορούμε να δούμε όλες τις διαθέσιμες λειτουργίες του φύλλου εργασίας, οπότε επιλέξτε τη συνάρτηση INDEX.

Κώδικας:

Υπο INDEX_MATCH_ Παράδειγμα 1 () Dim k As Integer For k = 2 to 5 Cells (k, 5). Value = WorksheetFunction.Index (Next k End Sub

Βήμα 7: Κατά τη χρήση της λειτουργίας φύλλου εργασίας στο VBA, πρέπει να είστε απολύτως σίγουροι για τα επιχειρήματα του τύπου. Το πρώτο όρισμα είναι πίνακας δηλαδή, από ποια στήλη χρειαζόμαστε το αποτέλεσμα. Σε αυτήν την περίπτωση, χρειαζόμαστε το αποτέλεσμα από A2 έως A5.

Κώδικας:

Sub INDEX_MATCH_Example1 () Dim k As Integer For k = 2 to 5 Cells (k, 5). Value = WorksheetFunction.Index (Range ("A2: A5"), Next k End Sub

Βήμα 8: Το επόμενο είναι από ποιο αριθμό σειράς χρειαζόμαστε το αποτέλεσμα. Όπως είδαμε στο προηγούμενο παράδειγμα, δεν μπορούμε να παρέχουμε χειροκίνητα τον αριθμό σειράς κάθε φορά. Χρησιμοποιήστε λοιπόν τη λειτουργία MATCH.

Για να χρησιμοποιήσουμε ξανά τη συνάρτηση MATCH, πρέπει να ανοίξουμε την κλάση Λειτουργία φύλλου εργασίας.

Κώδικας:

Sub INDEX_MATCH_Example1 () Dim k As Integer For k = 2 to 5 Cells (k, 5). Value = WorksheetFunction.Index (Range ("A2: A5"), WorksheetFunction.Match (Next k End Sub

Βήμα 9: Το πρώτο όρισμα συναρτήσεων MATCH είναι η τιμή LOOKUP. εδώ, η τιμή αναζήτησης είναι ονόματα τμημάτων. είναι εκεί στα κελιά (2, 4).

Δεδομένου ότι κάθε φορά που ο αριθμός σειράς πρέπει να αλλάζει, μπορούμε να παρέχουμε τη μεταβλητή "k" στη θέση του μη αυτόματου αριθμού σειράς 2. Κελιά (k, 4)

Κώδικας:

Sub INDEX_MATCH_Example1 () Dim k As Integer For k = 2 to 5 Cells (k, 5). Value = WorksheetFunction.Index (Range ("A2: A5"), WorksheetFunction.Match (Cells (k, 5). Value, Next k End Sub

Βήμα 10: Στη συνέχεια, πρέπει να αναφέρουμε το εύρος τιμών τμήματος, δηλαδή, Range ("B2: B5").

Κώδικας:

Sub INDEX_MATCH_Example1 () Dim k As Integer For k = 2 to 5 Cells (k, 5). Value = WorksheetFunction.Index (Range ("A2: A5"), WorksheetFunction.Match (Cells (k, 5). Value, Range ("B2: B5"),

Επόμενο k

Τέλος Υποτ

Βήμα 11: Στη συνέχεια, βάλτε το όρισμα ως 0 επειδή χρειαζόμαστε ένα ακριβές ταίριασμα και κλείστε τις αγκύλες

Κώδικας:

Sub INDEX_MATCH_Example1 () Dim k As Integer For k = 2 to 5 Cells (k, 5). Value = WorksheetFunction.Index (Range ("A2: A5"), WorksheetFunction.Match (Cells (k, 4). Value, Range ("B2: B5"), 0))

Επόμενο k

Τέλος Υποτ

Εντάξει, τελειώσαμε με το τμήμα κωδικοποίησης. Ας τρέξουμε τον κώδικα για να έχουμε το αποτέλεσμα στη στήλη 5.

Λοιπόν, έχουμε το αποτέλεσμα.

Μπορούμε να χρησιμοποιήσουμε αυτόν τον τύπο ως εναλλακτική λύση στη συνάρτηση VLOOKUP.

ενδιαφέροντα άρθρα...