VLOOKUP funkcijos tobulinimas

Turinys

Kaip tinkamai supakuoti parašiutą?

Nauda. 2 leidimas, pataisytas.

Tarkime, kad turime tokią užsakymų lentelę:

VLOOKUP funkcijos tobulinimas

Turime žinoti, pavyzdžiui, kokia buvo Ivanovo trečiojo pavedimo suma arba kada Petrovas įvykdė antrąjį sandorį. Integruota funkcija VLOOKUP gali ieškoti tik pirmojo pavardės atvejo lentelėje ir mums nepadės. Klausimai, pvz., „Kas buvo užsakymo Nr. 10256 valdytojas? taip pat liks neatsakyta, tk. įtaisytasis VLOOKUP negali grąžinti verčių iš stulpelių, esančių kairėje nuo paieškos.

Abi šios problemos išspręstos vienu ypu – parašykime savo funkciją, kuri ieškos ne tik pirmojo, bet, apskritai, N-ojo pasireiškimo. Be to, jis galės ieškoti ir pateikti rezultatus bet kuriuose stulpeliuose. Pavadinkime tai, tarkime, VLOOKUP2. 

Atidarykite „Visual Basic“ rengyklę paspausdami ALT+F11 arba pasirinkdami iš meniu Paslauga – makrokomandos – „Visual Basic“ redaktorius (Įrankiai – makrokomandos – „Visual Basic“ redaktorius), įdėkite naują modulį (meniu Įterpimas – modulis) ir nukopijuokite šios funkcijos tekstą ten:

Funkcija VLOOKUP2 (Lentelė kaip variantas, Paieškos stulpelio skaičius kaip ilgas, paieškos vertė kaip variantas, _ N kaip ilgas, rezultato stulpelio skaičius) Dim i kaip ilgai, iCount As Long Pasirinkite atvejo tipąPavadinimas (lentelė) Atvejis "diapazonas", kai i = 1 iki lentelės. Eilutės .Count If Table.Cells(i, SearchColumnNum) = SearchValue Then iCount = iCount + 1 End If iCount = N Tada VLOOKUP2 = Table.Cells(i, ResultColumnNum) Išeiti už pabaigą, jei seka i atvejis "Variant()" i = 1 Į UBound(lentelę) If Table(i, SearchColumnNum) = SearchValue then iCount = iCount + 1 If iCount = N Tada VLOOKUP2 = Table(i, ResultColumnNum) Išeiti į pabaigą, jei sekantis i Pabaiga Pasirinkite pabaigos funkciją  

Uždarykite „Visual Basic“ rengyklę ir grįžkite į „Excel“.

Dabar per Įterpimas – funkcija (Įterpti – funkcija) kategorijoje Vartotojo apibrėžta (nustatyta naudotojo) galite rasti mūsų VLOOKUP2 funkciją ir ja naudotis. Funkcijos sintaksė yra tokia:

=VLOOKUP2(lentelė;_stulpelio_skaičius_kur_mes ieškome; paieškos_vertė; N;_stulpelio_skaičius_nuo_iki_gauti_vertę)

Dabar standartinės funkcijos apribojimai mums netrukdo:

VLOOKUP funkcijos tobulinimas

PS Ypatingas ačiū The_Prist už patobulintą funkciją, kad būtų galima ieškoti uždarose knygose.

  • Duomenų paieška ir keitimas iš vienos lentelės į kitą naudojant VLOOKUP funkciją
  • „Kairysis VLOOKUP“ naudojant INDEX ir MATCH funkcijas

 

Palikti atsakymą