Βελτίωση της λειτουργίας VLOOKUP

Περιεχόμενα

Πώς να πακετάρετε σωστά ένα αλεξίπτωτο;

Οφελος. Έκδοση 2, αναθεωρημένη.

Ας υποθέσουμε ότι έχουμε τον ακόλουθο πίνακα παραγγελιών:

Βελτίωση της λειτουργίας VLOOKUP

Πρέπει να μάθουμε, για παράδειγμα, ποιο ήταν το ποσό της τρίτης παραγγελίας του Ιβάνοφ ή πότε ο Πετρόφ εκτέλεσε τη δεύτερη συμφωνία του. Η ενσωματωμένη συνάρτηση VLOOKUP μπορεί να αναζητήσει μόνο την πρώτη εμφάνιση του επωνύμου στον πίνακα και δεν θα μας βοηθήσει. Ερωτήσεις όπως "Ποιος ήταν ο διαχειριστής του αριθμού παραγγελίας 10256;" θα μείνει επίσης αναπάντητο, τκ. το ενσωματωμένο VLOOKUP δεν μπορεί να επιστρέψει τιμές από στήλες στα αριστερά της αναζήτησης.

Και τα δύο αυτά προβλήματα επιλύονται με μια πτώση – ας γράψουμε τη δική μας συνάρτηση που θα αναζητά όχι μόνο την πρώτη, αλλά, στη γενική περίπτωση, την Nη εμφάνιση. Επιπλέον, θα μπορεί να αναζητά και να παράγει αποτελέσματα σε οποιεσδήποτε στήλες. Ας το ονομάσουμε, ας πούμε, VLOOKUP2. 

Ανοίξτε το Visual Basic Editor πατώντας ALT+F11 ή επιλέγοντας από το μενού Service – Macro – Visual Basic Editor (Εργαλεία — Μακροεντολή — Επεξεργαστής Visual Basic), εισαγάγετε μια νέα μονάδα (μενού Εισαγωγή – Ενότητα) και αντιγράψτε το κείμενο αυτής της συνάρτησης εκεί:

Συνάρτηση VLOOKUP2 (Πίνακας ως παραλλαγή, ΑναζήτησηΣτήληςΑριθμός όσο μακρύς, ΑναζήτησηΤιμή ως παραλλαγή, _ N για χρονικό διάστημα, ΑποτέλεσμαΣτήληςΑριθμός για όσο χρονικό διάστημα) Αθόρυβο i όσο χρονικό διάστημα, iCount As Long Select Case TypeName(Table) Case "Range" Για i = 1 έως Table.Rows .Count If Table.Cells(i, SearchColumnNum) = SearchValue Τότε iCount = iCount + 1 End If If iCount = N Τότε VLOOKUP2 = Table.Cells(i, ResultColumnNum) Έξοδος για Τέλος Αν Επόμενο i Περίπτωση "Variant()" Για i = 1 To UBound(Table) If Table(i, SearchColumnNum) = SearchValue Τότε iCount = iCount + 1 If iCount = N Τότε VLOOKUP2 = Table(i, ResultColumnNum) Έξοδος για Τέλος Αν Επόμενο i Τέλος Επιλέξτε Τέλος Συνάρτηση  

Κλείστε το πρόγραμμα επεξεργασίας της Visual Basic και επιστρέψτε στο Excel.

Τώρα Εισαγωγή – Λειτουργία (Εισαγωγή — Λειτουργία) στην κατηγορία Ορίζεται Χρήστη (Ορισμένο από τον χρήστη) μπορείτε να βρείτε τη λειτουργία VLOOKUP2 και να τη χρησιμοποιήσετε. Η σύνταξη της συνάρτησης είναι η εξής:

=VLOOKUP2(πίνακας; αριθμός_της_στήλης_όπου_αναζητάμε; τιμή_αναζήτησης; Ν; αριθμός_στήλης_από_προς_λήψη_τιμής)

Τώρα οι περιορισμοί της τυπικής συνάρτησης δεν αποτελούν εμπόδιο για εμάς:

Βελτίωση της λειτουργίας VLOOKUP

PS Ιδιαίτερες ευχαριστίες στο The_Prist για τη βελτίωση της λειτουργίας ώστε να μπορεί να κάνει αναζήτηση σε κλειστά βιβλία.

  • Εύρεση και αντικατάσταση δεδομένων από τον έναν πίνακα στον άλλο χρησιμοποιώντας τη συνάρτηση VLOOKUP
  • "Αριστερό VLOOKUP" χρησιμοποιώντας τις συναρτήσεις INDEX και MATCH

 

Αφήστε μια απάντηση