VBA Application.Match - Οδηγός βήμα προς βήμα με παραδείγματα

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

Εφαρμογή Excel VBA. Αντιστοίχιση

Ένα από τα καλύτερα πράγματα για το VBA είναι ότι έχει τη δική του λειτουργία και επίσης θα μας επιτρέψει να έχουμε πρόσβαση σε όλες τις λειτουργίες του φύλλου εργασίας στην κατηγορία «Λειτουργία φύλλου εργασίας». Πρέπει να έχετε ήδη χρησιμοποιήσει τη συνάρτηση MATCH ως συνάρτηση φύλλου εργασίας, αλλά δεν είναι συνάρτηση VBA, επομένως πρέπει να έχουμε πρόσβαση στην κλάση λειτουργίας φύλλου εργασίας. Σε αυτό το άρθρο, θα σας δείξουμε πώς να χρησιμοποιήσετε τη συνάρτηση MATCH στο VBA χρησιμοποιώντας τη μέθοδο εφαρμογής.

Γρήγορη ανακεφαλαίωση της λειτουργίας MATCH

Το MATCH είναι μια συνάρτηση αναζήτησης που αναζητά τη θέση της τιμής αναζήτησης στον αναφερόμενο πίνακα αναζήτησης. Για παράδειγμα, δείτε την παρακάτω εικόνα των δεδομένων.

Στα παραπάνω δεδομένα, έχουμε μήνες από το Α2 έως το Α6 και αν θέλουμε να μάθουμε σε ποιο σημείο εμφανίζεται ο μήνας «Μαρ», τότε μπορούμε να χρησιμοποιήσουμε τη συνάρτηση MATCH.

Παρακάτω είναι η σύνταξη της συνάρτησης MATCH.

MATCH (Τιμή αναζήτησης, Σειρά αναζήτησης, (Τύπος αντιστοίχισης))
  • Τιμή αναζήτησης: Για ποια τιμή αναζητούμε τη θέση στον πίνακα αναζήτησης.
  • Lookup Array: Σε ποιον πίνακα ψάχνουμε τη θέση της τιμής αναζήτησης.
  • (Τύπος αντιστοίχισης): Για αυτό, μπορούμε να παρέχουμε τρία επιχειρήματα.
  1. 1 = Λιγότερο από
  2. 0 = Ακριβής αντιστοίχιση
  3. -1 = Μεγαλύτερο από

Τις περισσότερες φορές, χρησιμοποιούμε μόνο "0 Exact Match".

Πώς να χρησιμοποιήσετε τη λειτουργία Application.Match στο VBA;

Παράδειγμα # 1

Κοιτάξτε τα παρακάτω δεδομένα στο Excel.

Από τα παραπάνω δεδομένα, πρέπει να βρούμε τη θέση του μήνα «Μαρ» στο εύρος κελιών από A2 έως A6. Δεδομένου ότι χρειαζόμαστε αποτελέσματα σε κελιά D2, ξεκινήστε αμέσως τον κωδικό ως Range ("D2"). Value =.

Για να φτάσουμε στην τιμή στο κελί D2, πρέπει να χρησιμοποιήσουμε τη συνάρτηση φύλλου εργασίας MATCH, οπότε για να αποκτήσουμε πρόσβαση σε αυτό πρώτα, πρέπει να αποκτήσουμε πρόσβαση στο αντικείμενο ΕΦΑΡΜΟΓΗ και στη συνέχεια στο αντικείμενο ΛΕΙΤΟΥΡΓΙΑ ΛΕΙΤΟΥΡΓΙΑΣ.

Εισαγάγετε κουκκίδα για να δείτε μια λίστα με τις λειτουργίες του φύλλου εργασίας.

Επιλέξτε "Ταίριασμα" από τη λίστα.

Ένα από τα προβλήματα στο VBA κατά τη χρήση των λειτουργιών του φύλλου εργασίας είναι ότι δεν βλέπουμε την ακριβή σύνταξη όπως βλέπουμε με τη λειτουργία του φύλλου εργασίας. Αυτός είναι ένας από τους λόγους που εξηγήσαμε τη σύνταξη στην αρχή μόνο.

Έτσι, το πρώτο επιχείρημα είναι η τιμή αναζήτησης, δηλαδή για ποια τιμή ψάχνουμε να βρούμε το μέρος. Σε αυτήν την περίπτωση, ψάχνουμε να βρούμε τη θέση για το "Mar" που βρίσκεται στο κελί C2, οπότε παρέχετε την αναφορά κελιού.

Το επόμενο όρισμα είναι πίνακας αναζήτησης, δηλαδή σε ποιο εύρος αναζητούμε τη θέση μιας τιμής αναζήτησης , για αυτό το κελί τροφοδοσίας από A2 έως A6.

Το τελευταίο όρισμα θα είναι η ακριβής αντιστοίχιση, οπότε παρέχετε 0.

Κώδικας:

Sub Match_Example1 () Range ("D2"). Value = Application.WorksheetFunction.Match (Range ("C2"). Value, Range ("A2: A6"), 0) End Sub

Εντάξει, τελειώσαμε με τον τύπο.

Εκτελέστε τον κωδικό μέσω του πλήκτρου F5 και δείτε τι παίρνουμε.

Έχουμε λοιπόν το αποτέλεσμα ως 3, επειδή η τιμή «Μαρ» είναι στη θέση της 3 ης θέσης στην περιοχή Α2 έως Α6.

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

Παράδειγμα # 2

Τώρα θα δούμε πώς να χρησιμοποιήσουμε το MATCH ως υποστηρικτική συνάρτηση για τη λειτουργία VLOOKUP.

Κοιτάξτε τα παρακάτω δεδομένα.

Στον παραπάνω πίνακα, εξετάζουμε τις πωλήσεις του μήνα «Φεβ» του 2018, οπότε πρέπει να χρησιμοποιήσουμε τη λειτουργία VLOOKUP. Το VLOOKUP είναι επίσης μια συνάρτηση φύλλου εργασίας, οπότε προσπελάστε έτσι όπως έχουμε αποκτήσει τη συνάρτηση MATCH.

Η τιμή αναζήτησης θα είναι κελί G2, επομένως παρέχετε τη διεύθυνση κελιού.

Κώδικας:

Sub Match_Example2() Range("H2").Value = Application.WorksheetFunction.VLookup(Range("G2").Value, End Sub

Table Array will be from A2 to D6.

Code:

Sub Match_Example2() Range("H2").Value = Application.WorksheetFunction.VLookup(Range("G2").Value,Range("A2:D6"), End Sub

Now we need to provide from which column of the table array we are looking for the result, so this will be from the 3rd column. Instead of supplying the column number as 3, let’s use the MATCH function.

Code:

Sub Match_Example2() Range("H2").Value = Application.WorksheetFunction.VLookup(Range("G2").Value, Range("A2:D6"), Application.WorksheetFunction.Match(Range("H1").Value, Range("A1:D1"), 0), 0) End Sub

Έτσι η συνάρτηση MATCH παρέχει τον αριθμό στήλης από το εύρος A1 έως D1 για τον μήνα «Φεβ». Ας τρέξουμε τον κώδικα και να δούμε πώς παίρνει αυτόματα αριθμούς στηλών.

Ορίστε, έχουμε ένα αποτέλεσμα από τη στήλη αριθμός 2 χάρη στην αυτόματη παροχή αριθμού στήλης από τη λειτουργία MATCH.

Πράγματα που πρέπει να θυμάστε

  • Η συνάρτηση MATCH αναζητά τη θέση της τιμής αναζήτησης στον επιλεγμένο πίνακα πίνακα.
  • Η συνάρτηση MATCH χρησιμοποιείται κυρίως με τη συνάρτηση VLOOKUP για την αυτόματη παροχή του αριθμού ευρετηρίου στηλών χρησιμοποιώντας την επικεφαλίδα στήλης.
  • Η συνάρτηση MATCH είναι διαθέσιμη ως συνάρτηση φύλλου εργασίας στο VBA.

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