PADANAN INDEKS VBA Berdasarkan Pelbagai Kriteria dalam Excel (3 Kaedah)

  • Berkongsi Ini
Hugh West

Apabila kami mempunyai sejumlah besar data, kadangkala sukar untuk mengekstrak sebarang data khusus daripada set data. Bersama-sama dengan fungsi INDEX dan MATCH Excel boleh mendapatkan sebarang jenis data walaupun dalam set data yang besar. Melaksanakan VBA ialah kaedah yang paling berkesan, paling cepat dan paling selamat untuk menjalankan sebarang operasi dalam Excel. Dalam artikel ini, kami akan menunjukkan kepada anda 3 kaedah berbeza tentang cara melaksanakan PADANAN INDEKS berdasarkan berbilang kriteria dalam Excel dengan makro VBA .

Muat turun Buku Kerja

Anda boleh memuat turun buku kerja Excel amalan percuma dari sini.

PADAN INDEKS VBA Berdasarkan Berbilang Kriteria.xlsm

3 Kaedah dengan VBA INDEX MATCH Berdasarkan Pelbagai Kriteria dalam Excel

Dalam bahagian berikut, kami akan menunjukkan kepada anda cara untuk melaksanakan INDEX MATCH berdasarkan berbilang kriteria untuk julat , untuk pilihan tertentu dan untuk jadual dalam Excel dengan VBA .

Di atas kami mempunyai set data yang akan diikuti oleh artikel ini. Kami mempunyai Nama Pelajar , ID Pelajar, dan Markah Peperiksaan setiap pelajar dalam set data. Kami akan mengeluarkan hasil tertentu yang berada dalam satu lajur berdasarkan syarat daripada dua lajur yang lain.

Kriteria – 1: Benamkan VBA dengan INDEX MATCH untuk Carian Berbilang (Dua) Dimensi dalam Excel

Pertimbangkan imej berikut. Kami telah menyimpan nama pelajar tertentu " Edge" dalam SelG4 ; dan lajur yang kita akan cari dalam Keputusan , Markah Peperiksaan , disimpan dalam Sel G5 . Kami akan mencari dalam lajur Markah Peperiksaan dan menyimpan Markah yang “ Tepi” perolehi dalam Sel G6 .

Langkah untuk mencari menghasilkan tatasusunan dua dimensi dengan INDEX dan MATCH dalam Excel dengan VBA diberikan di bawah.

Langkah:

  • Pada mulanya, tekan Alt + F11 pada papan kekunci anda atau pergi ke tab Pembangun -> Visual Basic untuk membuka Visual Basic Editor .

  • Seterusnya, dalam tetingkap kod timbul, daripada bar menu, klik Sisipkan -> Modul .

  • Kemudian, salin kod berikut dan tampal ke dalam kod tetingkap.
5030

Kod anda kini sedia untuk dijalankan.

  • Sekarang, tekan F5 pada anda papan kekunci atau daripada bar menu pilih Jalankan -> Jalankan Sub/Borang Pengguna . Anda juga boleh hanya mengklik pada ikon Run kecil dalam bar submenu untuk menjalankan makro.

Selepas pelaksanaan kod, lihat gif di bawah untuk melihat hasilnya.

Hasilnya, Markah yang “ Edge” dapat dalam peperiksaan, 67 , diambil dalam Sel G7 .

Penjelasan Kod VBA

3105

Mentakrifkan pembolehubah Lembaran Kerja.

6785

Simpan nama lembaran kerja. Nama helaian kami ialah "Dua Dimensi", anda harus berikannama mengikut hamparan anda.

6368

Sekeping kod ini memilih julat C5:D14 sebagai julat carian. Kemudian cari padanan yang disimpan dalam sel G4 dalam julat B5:B14 dan cari padanan yang disimpan dalam sel G5 dalam julat C4:D4 dan hantar hasilnya ke sel G6 .

Baca Lagi: Cara Menggunakan PADANAN INDEX dengan Pelbagai Kriteria untuk Julat Tarikh

Kriteria – 2: Gunakan Makro untuk Cari Nilai MATCH mengikut INDEX dengan Fungsi Ditentukan Pengguna (UDF)

Anda boleh mengekstrak nilai yang dipadankan daripada set data dengan fungsi takrif pengguna (UDF) . Daripada imej berikut, apa yang akan kita lakukan ialah, kita akan lulus ID Pelajar dan Markah Peperiksaan pelajar tertentu dan fungsi itu akan memberikan kita Nama daripada pelajar tertentu itu.

Mari kita lihat cara mencapainya untuk Nama Pelajar “Finn” dengan VBA .

Langkah:

  • Seperti yang ditunjukkan sebelum ini, buka Editor Asas Visual daripada tab Pembangun dan Sisipkan Modul dalam tetingkap kod.
  • Kemudian, dalam tetingkap kod, salin kod berikut dan tampal ia.
7727

  • Jangan jalankan kod ini, simpan ia.
  • Sekarang, kembali ke lembaran kerja yang diminati. Pilih mana-mana sel yang anda mahu simpan hasilnya. Dalam kes kami, ia ialah Sel F5 .
  • Dalam sel itu, tulis UDF andabaru sahaja mencipta dalam kod ( MatchByIndex ) dan lulus ID Pelajar dan Markah Peperiksaan pelajar tertentu di dalam kurungan fungsi.

Sebagaimana kami cuba mengekstrak nama “ Finn” daripada ID (105) dan Markah (84) beliau, jadi untuk kes kami formulanya menjadi,

=MatchByIndex(105,84)

  • Kemudian, tekan Enter .

Lihat imej berikut.

Dalam Sel F5 , kami telah berjaya mendapatkan semula nama “ Finn” dengan hanya menghantar ID dan Mark beliau di dalam fungsi yang kami buat dalam kod VBA .

Penjelasan Kod VBA

2690

Mencipta fungsi baharu dan menghantar pembolehubah di dalamnya. Anda boleh mentakrifkan sebarang nama untuk fungsi tersebut.

4034

Baris kami bermula dari baris nombor 4. Anda mesti memberikan nombor baris yang mana set data anda bermula.

1966

Mentakrifkan pembolehubah.

8377

Pertama, tentukan lembaran kerja untuk digunakan. Nama helaian kami ialah "UDF", anda harus memberikan nama mengikut hamparan anda. Kemudian mulakan carian dalam julat C:D dari baris pertama yang kami takrifkan kepada baris terakhir.

2034

Mulakan lelaran dari baris pertama ke baris terakhir. Jika nilai pertama yang akan kita hantar di dalam fungsi berada di dalam lajur C dan jika nilai kedua yang akan kita hantar di dalam fungsi itu berada di dalam lajur D , maka ia akan kembali yangpadankan daripada lajur B . Jika tidak, keluar dari fungsi, tamatkan semua pernyataan dan pergi ke baris seterusnya.

8396

Jika syarat sebelumnya tidak dapat dipenuhi semasa melaksanakan, maka mesej "Data Tidak Ditemui" akan dikembalikan dan kod akan meninggalkan fungsi.

Baca Lagi: INDEX-MACH dengan Pelbagai Kriteria untuk Teks Separa dalam Excel (2 Cara)

Kriteria – 3: Laksanakan VBA untuk Mengembalikan Nilai MATCH daripada Jadual dengan Berbilang Data dalam Excel

Dalam bahagian ini, kita akan belajar cara mengembalikan nilai yang dipadankan oleh indeks daripada jadual dalam MsgBox dalam VBA Excel.

Mari lihat cara mengekstrak Markah daripada jadual yang ditunjukkan dalam set data ( T Nama boleh: TableMatch ) pelajar tertentu dengan memberikan Nama dan ID di dalam kod. Untuk kes kami, Nama dan ID masing-masing akan menjadi Finn dan 105 .

Langkah-langkah :

  • Pertama sekali, buka Editor Asas Visual daripada tab Pembangun dan Sisipkan a Modul dalam tetingkap kod.
  • Kemudian, salin kod berikut dan tampal ke dalam tetingkap kod.
1582

Kod anda kini sedia untuk dijalankan.

  • Kemudian, Jalankan kod ini dan lihat imej berikut untuk melihat apa yang berlaku akibatnya.

Seperti yang anda boleh lihat daripada imej di atas, terdapat Microsoft Excel pop-kotak mesej yang menunjukkan kepada anda Markah: 84 daripada ID: 105 dan Nama: Finn yang kami berikan di dalam kod.

Penjelasan Kod VBA

1272

Mentakrifkan pembolehubah.

9526

Menetapkan nama helaian dan nama jadual di dalam pembolehubah.

2830

Menyimpan nilai carian dan lajur carian untuk dicari.

1718

Sekeping kod ini mengimbas dari awal hingga akhir subskrip dan jika ia menemui padanan ID yang ditentukan dan Nama dalam lajur carian maka simpan hasilnya dan tutup semua penyata. Juga, keluar dari lelaran dan pergi ke bahagian seterusnya kod.

6171

Melemparkan hasil dalam MsgBox.

Baca Lagi: Cari dan Kembali Berbilang Nilai Disatukan ke dalam Satu Sel dalam Excel

Kesimpulan

Untuk membuat kesimpulan, artikel ini menunjukkan kepada anda 3 kaedah berbeza tentang cara melaksanakan berdasarkan PADANAN INDEKS pada berbilang kriteria dalam Excel dengan makro VBA . Saya harap artikel ini banyak memberi manfaat kepada anda. Jangan ragu untuk bertanya apa-apa soalan mengenai topik tersebut.

Hugh West ialah jurulatih dan penganalisis Excel yang sangat berpengalaman dengan lebih 10 tahun pengalaman dalam industri. Beliau memiliki Ijazah Sarjana Muda Perakaunan dan Kewangan serta Ijazah Sarjana dalam Pentadbiran Perniagaan. Hugh mempunyai minat untuk mengajar dan telah membangunkan pendekatan pengajaran yang unik yang mudah diikuti dan difahami. Pengetahuan pakar Excel beliau telah membantu beribu-ribu pelajar dan profesional di seluruh dunia meningkatkan kemahiran mereka dan cemerlang dalam kerjaya mereka. Melalui blognya, Hugh berkongsi pengetahuannya dengan dunia, menawarkan tutorial Excel percuma dan latihan dalam talian untuk membantu individu dan perniagaan mencapai potensi penuh mereka.