Funcția încorporată VLOOKUP este una dintre cele mai puternice funcții din Excel. Dar are un dezavantaj semnificativ - găsește doar prima apariție a valorii dorite în tabel și numai în coloana din dreapta. Dar dacă ai nevoie de al 2-lea, al 3-lea și nu de ultimul?
Să presupunem că avem un tabel de împrumuturi procesate ca acesta:
Trebuie să știm, de exemplu, care a fost valoarea celui de-al treilea împrumut acordat lui Mike sau când John și-a executat al doilea acord. Funcția încorporată VLOOKUP știe să caute doar prima apariție a unui nume în tabel și nu ne va ajuta.
Să scriem funcția noastră, care va căuta nu numai prima, ci și orice (a N-a) intrare ulterioară. Să-l numim, de exemplu, VLOOKUP2.
Deschide meniul Serviciu - Macro - Editor Visual Basic , introduceți noul modul (meniul Insert - Module) și copiați acolo textul acestei funcție:
Function VLOOKUP2(Table As Range, _ SearchColumnNum As Integer, _ SearchValue As Variant, _ N As Integer, _ ResultColumnNum As Integer) Dim i As Integer Dim iCount As Integer 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 End Function
Închideți editorul Visual Basic și reveniți la Excel.
Acum, în Function Wizard, în categoria User Defined, puteți găsi și utiliza funcția noastră VLOOKUP2. Sintaxa funcției este următoarea:
=VLOOKUP2(masa ; coloană_număr_unde_căutăm ; valoare_cautata; număr_întrare ; coloană_număr_din_care_preluăm_valoarea )
Adică, pentru a găsi suma celui de-al treilea împrumut acordat lui Mike, va trebui să introduceți:
=VLOOKUP2(A2:A19 ; 1 ; „Mike”; 3 ; 4 )