Vylepšenie funkcie VLOOKUP

Obsah

Ako správne zabaliť padák?

úžitok. Vydanie 2, revidované.

Povedzme, že máme nasledujúcu tabuľku objednávok:

Vylepšenie funkcie VLOOKUP

Potrebujeme napríklad vedieť, aká bola suma Ivanovovej tretej objednávky alebo kedy Petrov zrealizoval svoj druhý obchod. Zabudovaná funkcia VLOOKUP dokáže vyhľadať len prvý výskyt priezviska v tabuľke a nepomôže nám. Otázky ako „Kto bol manažérom objednávky číslo 10256?“ zostane tiež nezodpovedaná, tk. vstavaný VLOOKUP nedokáže vrátiť hodnoty zo stĺpcov naľavo od vyhľadávaného.

Oba tieto problémy sú vyriešené jedným ťahom – napíšme si vlastnú funkciu, ktorá bude hľadať nielen prvý, ale vo všeobecnosti aj N-tý výskyt. Okrem toho bude môcť vyhľadávať a vytvárať výsledky v ľubovoľných stĺpcoch. Nazvime to, povedzme, VLOOKUP2. 

Otvorte Editor jazyka Visual Basic stlačením ALT+F11 alebo výberom z ponuky Služba – Makro – Editor jazyka Visual Basic (Nástroje — Makro — Editor jazyka Visual Basic), vložte nový modul (menu Vložiť – Modul) a skopírujte tam text tejto funkcie:

Funkcia VLOOKUP2(Tabuľka ako variant, SearchColumnNum as long, SearchValue as Variant, _ N as long, ResultColumnNum as long) Dim i as long, iCount as long Select 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 Potom VLOOKUP2 = Table(i, ResultColumnNum) Ukončiť Na Koniec Ak Ďalší i Koniec Vybrať End Function  

Zatvorte editor jazyka Visual Basic a vráťte sa do Excelu.

Teraz cez Vložiť – Funkcia (Vložiť – Funkcia) v kategórii Definované užívateľom (Definované užívateľom) môžete nájsť našu funkciu VLOOKUP2 a použiť ju. Syntax funkcie je nasledovná:

=VLOOKUP2(tabuľka; počet_stĺpcov, kde_ hľadáme; vyhľadávaná_hodnota; N; počet_stĺpcov od_k_získanej_hodnote)

Obmedzenia štandardnej funkcie pre nás teraz nie sú prekážkou:

Vylepšenie funkcie VLOOKUP

PS Špeciálne poďakovanie patrí The_Prist za zlepšenie funkcie, aby mohol vyhľadávať v zatvorených knihách.

  • Vyhľadanie a nahradenie údajov z jednej tabuľky do druhej pomocou funkcie VLOOKUP
  • “Ľavé VLOOKUP” pomocou funkcií INDEX a MATCH

 

Nechaj odpoveď