Excelda bir nechta mezonlarga asoslangan VBA INDEX MATCH (3 usul)

  • Buni Baham Ko'Ring
Hugh West

Agar bizda katta hajmdagi ma'lumotlar mavjud bo'lsa, ba'zida ma'lumotlar to'plamidan biron bir aniq ma'lumotni olish qiyin bo'ladi. Excelning INDEX va MATCH funktsiyalari bilan birgalikda, hatto katta ma'lumotlar to'plamida ham istalgan turdagi ma'lumotlarni olish mumkin. VBA ni amalga oshirish Excelda har qanday operatsiyani bajarishning eng samarali, eng tez va xavfsiz usuli hisoblanadi. Ushbu maqolada Excelda VBA makrosi bilan INDEX MATCH ni bir nechta mezonlarga asoslangan holda bajarishning 3 xil usulini ko'rsatamiz.

Yuklab olish Ishchi kitob

Bepul amaliyot Excel ish kitobini bu yerdan yuklab olishingiz mumkin.

VBA INDEX MATCH Asoslangan Multiple Criteria.xlsm

Excelda bir nechta mezonlarga asoslangan VBA INDEX MATCH bilan 3 usul

Keyingi bo'limlarda biz sizga diapazon uchun bir nechta mezonlarga asoslangan INDEX MATCHni qanday bajarishni ko'rsatamiz , aniq tanlov uchun va jadval uchun VBA bilan Excelda.

Yuqorida bizda ushbu maqola davom etadigan ma'lumotlar to'plami mavjud. Bizda ma'lumotlar to'plamidagi har bir talabaning Talaba ismi , Talaba ID, va imtihon baholari mavjud. Biz boshqa ikkita ustundan shartlar asosida bir ustunda joylashgan ma'lum natijani chiqaramiz.

Mezon - 1: Excelda bir nechta (ikki) o'lchovli qidirish uchun VBA-ni INDEX MATCH bilan joylashtirish

Quyidagi rasmni ko'rib chiqing. Biz ma'lum bir talabaning ismini " Edge" Uyachada saqladikG4 ; va Natija ni qidiradigan ustun, Imtihon baholari G5 uyasida saqlanadi. Biz Imtihon baholari ustunida qidiramiz va “ Edge” G6 katakchasida olgan Ballar ni saqlaymiz.

Qidirish bosqichlari natijasida VBA bilan Excelda INDEX va MATCH bilan ikki oʻlchovli massiv hosil boʻladi. quyida berilgan.

Qadamlar:

  • Avvalida klaviaturada Alt + F11 tugmalarini bosing yoki ga o'ting yorlig'i Dasturchi -> Visual Basic muharriri ni ochish uchun Visual Basic .

  • Keyingi, qalqib chiquvchi kod oynasida, menyu satrida Qo'shish -> Modul .

  • Keyin, quyidagi kodni nusxalang va uni kodga qo'ying oyna.
7964

Kodingiz endi ishga tushirishga tayyor.

  • Endi, kompyuteringizda F5 tugmasini bosing. klaviatura yoki menyu panelidan Ishga tushirish -> Sub/UserForm ni ishga tushiring. Shuningdek, makrosni ishga tushirish uchun pastki menyu satridagi kichik Run belgisini bosishingiz mumkin.

Kod bajarilgandan so'ng, Natijani ko'rish uchun quyidagi gif-ga qarang.

Natijada, “ Edge” da olgan Belgilar imtihon, 67 , G7 uyasida olinadi.

VBA kod tushuntirishi

2969

Ishchi varaqning o'zgaruvchisini aniqlash.

6637

Ishchi varaq nomini saqlang. Bizning varaqning nomi "Ikki o'lchovli", siz taqdim etishingiz kerakelektron jadvalingizga muvofiq nom.

8274

Ushbu kod qismi C5:D14 diapazonini qidirish diapazoni sifatida tanlaydi. Keyin G4 katakchasida B5:B14 oraliqda saqlangan moslikni qidiring va G5 katakchasida saqlangan moslikni oralig'ida qidiring. C4:D4 va natijani G6 katakka o'tkazing.

Batafsil o'qing: Sana oralig'i uchun bir nechta mezon bilan INDEX MATCHdan qanday foydalanish

Mezon – 2: Foydalanuvchi tomonidan aniqlangan funksiya (UDF) bilan INDEX boʻyicha MATCH qiymatini topish uchun makroni qoʻllang

Siz maʼlumotlar toʻplamidan mos qiymatlarni ajratib olishingiz mumkin. foydalanuvchi tomonidan belgilangan funksiya (UDF) . Quyidagi rasmdan biz nima qilmoqchimiz, biz ma'lum bir talabaning Talaba ID va imtihon baholarini o'tkazamiz va funktsiya bizga Ism oʻsha talabaning.

Keling, VBA bilan Talaba ismi “Finn” uchun bunga qanday erishish mumkinligini koʻrib chiqamiz.

Qadamlar:

  • Avval ko'rsatilganidek, Tuzuvchi yorlig'idan Visual Basic Editor va -ni oching. Kod oynasiga Module kiriting.
  • Keyin, kod oynasida quyidagi kodni nusxalang va qo'ying .
7934

  • Ushbu kodni ishlatmang , saqlang .
  • Endi qiziqtirgan ish varag'iga qayting. Natijani saqlamoqchi bo'lgan istalgan katakchani tanlang . Bizning holatda, bu F5 katakchasi .
  • Usha katakka UDF yozing.endigina kodda yaratdik ( MatchByIndex ) va talaba ID va imtihon baholarini funksiya qavslari ichidagi aniq talabadan o'ting.

As biz uning ID (105) va Marks (84) dan " Finn" nomini chiqarishga harakat qilmoqdamiz, shuning uchun bizning holatimizda formula <3 bo'ladi> =MatchByIndex(105,84)

  • Keyin Enter tugmasini bosing.

Quyidagi rasmga qarang.

F5 katakchasida biz “ Finn” nomini muvaffaqiyatli topdik oddiygina ID va Marks -ni biz VBA kodida yaratgan funktsiyaga o'tkazish orqali.

VBA kodini tushuntirish

6358

Yangi funksiya yaratish va uning ichidagi o'zgaruvchilarni uzatish. Funksiyaga istalgan nomni belgilashingiz mumkin.

5274

Bizning qatorimiz 4-qatordan boshlanadi. Maʼlumotlar toʻplamidan boshlanadigan qator raqamini koʻrsatishingiz kerak.

4372

Oʻzgaruvchilarni aniqlash.

3176

Birinchidan, ishlash uchun ishchi varaqni aniqlang. Bizning varaqning nomi "UDF", siz o'zingizning elektron jadvalingizga muvofiq nom berishingiz kerak. Keyin biz belgilagan birinchi qatordan oxirgi qatorgacha C:D diapazonida qidirishni boshlang.

2517

Birinchi qatordan oxirgi qatorgacha takrorlashni boshlang. Agar funktsiya ichida biz o'tkazadigan birinchi qiymat C ustuniga tushsa va funksiya ichiga o'tkazadigan ikkinchi qiymat D ustuniga tushsa, u qaytib keladi. the B ustunidan mos. Aks holda, funktsiyadan chiqing, barcha bayonotlarni tugating va keyingi qatorga o'ting.

9983

Agar bajarilayotganda oldingi shart bajarilmasa, "Ma'lumotlar topilmadi" xabari qaytariladi va kod funksiyani tark etadi.

Batafsil o'qing: Excelda qisman matn uchun bir nechta mezonlar bilan INDEX-MATCH (2 usul)

Mezon – 3: Excelda bir nechta ma’lumotlarga ega jadvaldan MATCH qiymatini qaytarish uchun VBA ni qo‘llash

Ushbu bo‘limda biz jadvaldagi indekslar bo‘yicha mos qiymatni qanday qaytarishni o‘rganamiz. VBA Excel-dagi MsgBox -da.

Keling, bizning jadvalda ko'rsatilgan jadvaldan Belgilar ni qanday chiqarishni ko'rib chiqamiz. Kod ichidagi Ism va ID ni taqdim etish orqali ma'lum bir talabaning ma'lumotlar to'plami ( T mumkin nomi: TableMatch ). Bizning holatimizda Ism va ID mos ravishda Finn va 105 bo'ladi.

Qadamlar :

  • Birinchidan, Dasturchi yorlig'idan Visual Basic Editor -ni oching va Qo'shish Moduli kod oynasida.
  • Keyin, quyidagi kodni nusxalang va kod oynasiga joylashtiring.
2751

Kodingiz endi ishga tayyor.

  • Keyinroq bu kodni Ishga tushirish va natijada nima boʻlganini bilish uchun quyidagi rasmga qarang.

Yuqoridagi rasmdan ko'rinib turibdiki, Microsoft Excel pop-Yuqoridagi xabarlar oynasi sizga Identifikator: 105 va Ism: Finn ning Belgilari: 84 ni ko'rsatadi.

VBA kodining tushuntirishi

8806

O'zgaruvchilarni aniqlash.

1584

Varaq nomini va o'zgaruvchilar ichidagi jadval nomini o'rnatish.

3633

Saqlash Qidiruv qiymatlari va qidirish ustunlari.

1623

Ushbu kod qismi pastki yozuvning boshidan oxirigacha skanerdan o'tkazadi va agar qidiruv ustunlarida belgilangan ID va Ism mosligini topsa, u holda natijani saqlang va barcha bayonotlarni yoping. Shuningdek, iteratsiyadan chiqing va kodning keyingi qismiga o'ting.

7669

Natijani xabarlar qutisiga tashlaydi.

Batafsil o'qing: Qidirish va qaytarish Excelda bir katakka birlashtirilgan bir nechta qiymatlar

Xulosa

Xulosa qilish uchun ushbu maqola sizga INDEX MATCH asosidagi 3 xil usulni ko'rsatdi. bir nechta mezon bo'yicha Excelda VBA makros bilan. Umid qilamanki, ushbu maqola siz uchun juda foydali bo'ldi. Mavzu bo'yicha har qanday savollarni berishingiz mumkin.

Hugh West - bu sohada 10 yildan ortiq tajribaga ega bo'lgan yuqori tajribali Excel treneri va tahlilchisi. Buxgalteriya hisobi va moliya yo‘nalishi bo‘yicha bakalavr va biznes boshqaruvi bo‘yicha magistr darajasiga ega. Xyu o'qitishga ishtiyoqi bor va unga amal qilish va tushunish oson bo'lgan o'ziga xos o'qitish usulini ishlab chiqdi. Uning Excel bo'yicha ekspert bilimlari butun dunyo bo'ylab minglab talabalar va mutaxassislarga o'z malakalarini oshirishga va o'z martabalarida muvaffaqiyat qozonishlariga yordam berdi. Xyu o'z blogi orqali o'z bilimlarini dunyo bilan baham ko'radi, jismoniy shaxslar va korxonalarga o'z salohiyatini to'liq ro'yobga chiqarishga yordam berish uchun bepul Excel darsliklari va onlayn treninglarni taklif qiladi.