Κείμενο Vlookup
Η τυπική συνάρτηση Vlookup μπορεί να χρησιμοποιηθεί για την εύρεση μιας τιμής σε έναν πίνακα:
Και θα χρησιμοποιούσαμε το VLOOKUP έτσι:
= VLOOKUP (A1: 10, "Dog", 2, FALSE)
για να δώσει την τιμή 30.
Ωστόσο, σε αυτή τη λίστα βλέπουμε ότι το Dog εμφανίζεται 3 φορές. Η τυπική συνάρτηση VLOOKUP θα επιστρέψει μόνο την τιμή που σχετίζεται με το πρώτο στοιχείο αυτής της λίστας. Δεν θα επιστρέψει το 125 ή το 9.250 με τη δεύτερη ή την τρίτη περίπτωση "σκύλου" σε αυτήν τη λίστα.
Vlookup Πολλαπλά αποτελέσματα
Η ακόλουθη συνάρτηση μας επιτρέπει να καθορίσουμε ένα εύρος, μια έκφραση προς αναζήτηση και την παρουσία (αριθμός αποτελέσματος) και στη συνέχεια να επιστρέψουμε την αντίστοιχη τιμή:
Συνάρτηση Find_nth_Occurrence (Column_Range As Range, Expression As String, Occ As Integer) As Double Dim Cell Dim Occurrences_to_date As Integer Find_nth_Occurrence = 1000000 Occurrences_to_date = 0 Για κάθε κελί σε Column_Range If Cell.Value = Expression_Point Στη συνέχεια Find_nth_Occurrence = Cell.Offset (0, 1). Value End If End If Next Cell End Function
Η κύρια διαφορά μεταξύ αυτής και της τυπικής λειτουργίας VLOOKUP είναι ότι σε αυτήν την περίπτωση, το εύρος είναι το μόνο εύρος ετικετών - όχι ολόκληρο το εύρος δεδομένων.
Το παρακάτω είναι μια υπορουτίνα που καλεί αυτήν τη λειτουργία με βάση το συμβάν κλικ από ένα κουμπί εντολών. Φαίνεται στην περιοχή A1: A8 στο Sheet2, για την 3η περίπτωση της λέξης Dog:
Private Sub CommandButton1_Click () Dim Answer As Double Answer = Find_nth_Occurrence (Sheets ("Sheet2"). Range ("A1: A8"), "Dog", 3) MsgBox AnswerEnd Sub
Η μεταβλητή "Απάντηση" αποθηκεύει το αποτέλεσμα της συνάρτησης - το οποίο στη συνέχεια εμφανίζεται σε ένα Msgbox στην οθόνη:
> Ωστόσο, εάν η λέξη δεν μπορεί να βρεθεί στη λίστα ή η συχνότητα δεν εμφανιστεί, π.χ. δεν υπάρχει 5η περίπτωση της λέξης "Σκύλος", τότε επιστρέφεται η τιμή 1.000.000:-
Απάντηση = Find_nth_Occurrence (Sheets ("Sheet2"). Range ("A1: A8"), "Dog", 5)
Ή
Απάντηση = Find_nth_Occurrence (Sheets ("Sheet2"). Range ("A1: A8"), "Horse", 2)