Að bæta VLOOKUP aðgerðina

Efnisyfirlit

Hvernig á að pakka fallhlíf almennilega?

Hagur. Útgáfa 2, endurskoðuð.

Segjum að við höfum eftirfarandi töflu yfir pantanir:

Að bæta VLOOKUP aðgerðina

Við þurfum til dæmis að vita hvað var upphæð þriðju pöntunar Ivanovs eða hvenær Petrov framkvæmdi annan samning sinn. Innbyggða VLOOKUP aðgerðin getur aðeins leitað að fyrsta tilviki eftirnafns í töflunni og mun ekki hjálpa okkur. Spurningar eins og "Hver var umsjónarmaður pöntunarnúmers 10256?" verður einnig ósvarað, tk. innbyggða VLOOKUP getur ekki skilað gildum úr dálkum vinstra megin við leitina.

Bæði þessi vandamál eru leyst í einu vetfangi - við skulum skrifa okkar eigin fall sem mun ekki aðeins leita að fyrsta, heldur, í almennu tilviki, að Nth viðburðinum. Þar að auki mun það geta leitað og framleitt niðurstöður í hvaða dálkum sem er. Við skulum kalla það, segjum, VLOOKUP2. 

Opnaðu Visual Basic Editor með því að ýta á ALT+F11 eða með því að velja úr valmyndinni Þjónusta – Fjölvi – Visual Basic ritstjóri (Tól - Fjölvi - Visual Basic ritstjóri), settu inn nýja einingu (valmynd Settu inn - Eining) og afritaðu texta þessarar aðgerðar þangað:

Aðgerð VLOOKUP2(Tafla sem afbrigði, LeitardálkNúmer eins langt, Leitargildi sem afbrigði, _ N jafnlangt, Niðurstöðudálkanúmer eins lengi) Dimma i eins lengi, iCount eins lengi Veldu Case TypeName(Tafla) Case "Range" Fyrir i = 1 To Table.Rows .Count If Table.Cells(i, SearchColumnNum) = SearchValue Then iCount = iCount + 1 End If If iCount = N Then VLOOKUP2 = Table.Cells(i, ResultColumnNum) Exit For End If Next i Case "Variant()" Fyrir i = 1 Til UBound(Tafla) If Table(i, SearchColumnNum) = SearchValue Then iCount = iCount + 1 If iCount = N Þá VLOOKUP2 = Tafla(i, ResultColumnNum) Hætta fyrir End If Next i End Veldu Lokaaðgerð  

Lokaðu Visual Basic Editor og farðu aftur í Excel.

Nú í gegn Setja inn - Virka (Setja inn — Virka) í flokki Notandi skilgreindur (Notandi skilgreindur) þú getur fundið VLOOKUP2 aðgerðina okkar og notað hana. Setningafræði fallsins er sem hér segir:

=VLOOKUP2(tafla; fjöldi_dálka_þar sem_við leitum að; uppflettingargildi; N; fjöldi_dálka_frá_að_að_fá_gildi)

Nú eru takmarkanir stöðluðu aðgerðarinnar ekki hindrun fyrir okkur:

Að bæta VLOOKUP aðgerðina

PS Sérstakar þakkir til The_Prist fyrir að bæta virknina þannig að hægt sé að leita í lokuðum bókum.

  • Að finna og skipta út gögnum úr einni töflu í aðra með því að nota VLOOKUP aðgerðina
  • „Left VLOOKUP“ með því að nota INDEX og MATCH aðgerðirnar

 

Skildu eftir skilaboð