VLOOKUP funksiyasini yaxshilash

Mundarija

Parashyutni qanday qilib to'g'ri yig'ish kerak?

Foyda. 2-nashr, qayta ko'rib chiqilgan.

Aytaylik, bizda quyidagi buyurtmalar jadvali mavjud:

VLOOKUP funksiyasini yaxshilash

Biz, masalan, Ivanovning uchinchi buyrug'i qancha bo'lganini yoki Petrov ikkinchi bitimni qachon amalga oshirganini bilishimiz kerak. O'rnatilgan VLOOKUP funksiyasi faqat familiyaning jadvalda birinchi marta paydo bo'lishini qidirishi mumkin va bizga yordam bermaydi. “10256-sonli buyurtma boshlig‘i kim edi?” kabi savollar. ham javobsiz qoladi, tk. o'rnatilgan VLOOKUP qidiruvning chap tomonidagi ustunlardan qiymatlarni qaytara olmaydi.

Bu muammolarning ikkalasi ham bir zarbada hal qilinadi - keling, o'z funksiyamizni yozaylik, u nafaqat birinchi, balki umumiy holatda N-chi hodisani qidiradi. Bundan tashqari, u istalgan ustunlarda natijalarni qidirish va ishlab chiqarish imkoniyatiga ega bo'ladi. Keling, buni VLOOKUP2 deb ataylik. 

ALT+F11 tugmalarini bosib yoki menyudan tanlash orqali Visual Basic muharririni oching Xizmat - Makro - Visual Basic muharriri (Asboblar — Makro — Visual Basic muharriri), yangi modulni joylashtiring (menyu Qo'shish - modul) va ushbu funktsiyaning matnini u erga ko'chiring:

VLOOKUP2 funksiyasi(Jadval Variant sifatida, QidiruvUstunNum As Long, QidiruvValue Variant sifatida, _ N Kabi Uzun, NatijaColumnNum Kabi Long) Dim i Kabi Uzun, iCount As Long Tanlash Case TypeName(Jadval) Case “Range” For i = 1 Jadval.Satrlar. .Count If Table.Cells(i, SearchColumnNum) = SearchValue Keyin iCount = iCount + 1 End Agar iCount = N boʻlsa, VLOOKUP2 = Table.Cells(i, ResultColumnNum) End uchun chiqish Agar keyingi boʻlsa i Case “Variant()” i uchun = 1 UBound(Jadval) Agar Jadval(i, SearchColumnNum) = SearchValue Keyin iCount = iCount + 1 Agar iCount = N boʻlsa, VLOOKUP2 = Jadval(i, NatijaColumnNum) Oxirgi uchun chiqish Agar keyingi i tugasa, tugatish funksiyasini tanlang  

Visual Basic muharririni yoping va Excelga qayting.

Endi tugadi Qo'shish - Funktsiya (Qo'shish - Funktsiya) toifasida Foydalanuvchi aniqlangan (Foydalanuvchi tomonidan belgilangan) VLOOKUP2 funksiyamizni topishingiz va undan foydalanishingiz mumkin. Funktsiya sintaksisi quyidagicha:

=VLOOKUP2(jadval; biz qidiradigan_ustunlar_raqami; qidirish_qiymati; N; qiymatdan_olishgacha_ustun_soni)

Endi standart funktsiyaning cheklovlari bizga to'sqinlik qilmaydi:

VLOOKUP funksiyasini yaxshilash

PS The_Prist ga funksiyani yopiq kitoblardan qidirishi uchun yaxshilagani uchun alohida rahmat.

  • VLOOKUP funksiyasi yordamida bir jadvaldan ikkinchisiga ma'lumotlarni topish va almashtirish
  • INDEX va MATCH funksiyalaridan foydalangan holda “Chap VLOOKUP”

 

Leave a Reply