Vlookup Više uvjeta pomoću VBA
Razmotrite sljedeću tablicu podataka:
Standardna funkcija Vlookup u programu Excel ima sljedeći format:
VLOOKUP ("" Oznaka ", B6: G12", 2, FALSE)
Koji će vratiti "Brown".
Međutim, što ako bismo htjeli pogledati 2 ili više uvjeta, npr. Ime, prezime i dob u gornjoj tablici? Sljedeći UDF nam to omogućuje:
123456789101112131415161718192021222324252627282930313233343536373839 | Funkcija ThreeParameterVlookup (Data_Range As Range, Col As Integer, Parameter1 as Variant, Parameter2 as Variant, Parameter3 as Variant) Kao varijanta'Deklarirajte varijableZatamnjena ćelijaZatamni Current_Row kao cijeli brojDim No_Of_Rows_in_Range As IntegerDim No_of_Cols_in_Range As IntegerDim Matching_Row As Integer'zadano postavite odgovor na N/AThreeParameterVlookup = CVErr (xlErrNA)Podudarni_red = 0Trenutni_red = 1No_Of_Rows_in_Range = Podatkovni_Range.Rows.CountNo_Cols_in_Range = Podatci_Range.Columns.Count'Provjerite je li Col veći od broja stupaca u rasponuAko (Col> No_of_Cols_in_Range) TadaThreeParameterVlookup = CVErr (xlErrRef)Završi akoAko (Col <= No_of_Cols_in_Range) TadaČiniAko ((Data_Range.Cells (Current_Row, 1) .Value = Parameter1) I _(Područje_Data.Cells (Trenutni_red, 2). Vrijednost = Parametar2) I _(Podatkovni raspon. Ćelije (Trenutni_red, 3). Vrijednost = Parametar3)) ZatimPodudarni_red = Trenutni_redZavrši akoTrenutni_red = Trenutni_red + 1Petlja do ((Trenutni_red = Nema_Of_Rows_in_Range) Ili (Matching_Row 0))Ako Matching_Row 0 TadaThreeParameterVlookup = Data_Range.Cells (Matching_Row, Col)Završi akoZavrši akoZavršna funkcija |
Ima sljedeću sintaksu:
ThreeParameterVlookup (Data_Range, Col, Parameter1, Parameter2, Parameter3)
Gdje:
• Data_Range je raspon podataka
• Col je cijeli broj za traženi stupac
• Parametar1, Parameter2 i Parameter3 su vrijednosti iz prva tri stupca
Tako da:
= ThreeParameterVlookup (B6: G12,6, "Mark", "Brown", 7) vratit će "Tolworth" jer se ovo podudara na "Mark", "Brown" i 7 i upućivanje na 6. stupac
Imajte na umu da će ova funkcija raditi i s (dinamičkim) imenovanim rasponima:
= ThreeParameterVlookup (named_range, 6, "Adrian", "White", 7) vratit će "Chessington" gdje smo postavili imenovani raspon "Named_Range".
Ako Excel ne može pronaći podudarnost, prema zadanim postavkama vraća se "N/A". Zapravo, funkcija pretpostavlja vrijednost N/A na početku, a zatim se mijenja samo kada pronađe točno podudaranje.
Također, ako vrijednost Col premašuje broj stupaca, dolazi do greške reference.
Kliknite ovdje da biste preuzeli .XLSM datoteku za ovaj vodič