Izboljšanje funkcije VLOOKUP

vsebina

Kako pravilno spakirati padalo?

Korist. 2. izdaja, revidirana.

Recimo, da imamo naslednjo tabelo naročil:

Izboljšanje funkcije VLOOKUP

Vedeti moramo na primer, kolikšen je bil znesek tretjega naročila Ivanova ali kdaj je Petrov izvršil svoj drugi posel. Vgrajena funkcija VLOOKUP lahko išče samo prvo pojavitev priimka v tabeli in nam ne bo pomagala. Vprašanja, kot je "Kdo je bil upravitelj naročila številka 10256?" bo tudi ostalo brez odgovora, tk. vgrajeni VLOOKUP ne more vrniti vrednosti iz stolpcev levo od iskalnega.

Oba problema sta rešena z enim zamahom – napišimo lastno funkcijo, ki ne bo iskala samo prvega, ampak v splošnem primeru tudi N-ti pojav. Poleg tega bo lahko iskal in ustvaril rezultate v poljubnih stolpcih. Recimo temu VLOOKUP2. 

Odprite urejevalnik Visual Basic s pritiskom na ALT+F11 ali z izbiro v meniju Storitev – Makro – Urejevalnik Visual Basic (Orodja — Makro — Urejevalnik Visual Basic), vstavite nov modul (meni Vstavi – Modul) in kopirajte besedilo te funkcije tja:

Funkcija VLOOKUP2(Tabela kot različica, SearchColumnNum As Long, SearchValue As Variant, _ N As Long, ResultColumnNum As Long) Dim i As Long, iCount As Long Izberite Case TypeName(Table) Case "Range" For 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()" For i = 1 To UBound(Table) If Table(i, SearchColumnNum) = SearchValue Then iCount = iCount + 1 If iCount = N Then VLOOKUP2 = Table(i, ResultColumnNum) Exit For End If Next i End Select End Function  

Zaprite urejevalnik Visual Basic in se vrnite v Excel.

Zdaj skozi Vstavi – funkcija (Vstavi — funkcija) v kategoriji Uporabnik definiran (Uporabnik definiran) najdete našo funkcijo VLOOKUP2 in jo uporabite. Sintaksa funkcije je naslednja:

=VLOOKUP2(tabela; število_stolpca_kjer_iščemo; iskalna_vrednost; N; število_stolpca_od_do_dobite_vrednost)

Zdaj omejitve standardne funkcije za nas niso ovira:

Izboljšanje funkcije VLOOKUP

PS Posebna zahvala The_Prist za izboljšanje funkcije, tako da lahko išče v zaprtih knjigah.

  • Iskanje in zamenjava podatkov iz ene tabele v drugo s funkcijo VLOOKUP
  • “Levi VLOOKUP” z uporabo funkcij INDEX in MATCH

 

Pustite Odgovori