Isi kandungan
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.