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 apariție ulterioară (a N-a). 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ții:
Function VLOOKUP2(Table As Range, _ SearchColumnNum As Integer, _ SearchValue As Variant, _ N As Integer, _ ResultColumnNum As Integer) 'moonexcel.com.ua 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 editorul Visual Basic și reveniți la Excel.
Acum in Vrăjitorii de funcții în categorie Definit de utilizator puteți găsi funcția noastră VLOOKUP2 și o puteți utiliza. 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)