Pertandingan Indeks VBA

Perlawanan Indeks di VBA

Fungsi INDEX & MATCH dalam kombinasi VBA adalah alternatif kepada fungsi VLOOKUP di excel. Di VBA, kami tidak menggunakan fungsi INDEX & MATCH secara langsung kerana kedua fungsi ini bukan sebahagian daripada fungsi terbina dalam VBA. Walau bagaimanapun, kami masih boleh menggunakannya sebagai sebahagian daripada kelas fungsi lembaran kerja.

Bagaimana Menggunakan Padanan Indeks di VBA? (Langkah demi langkah)

Anda boleh memuat turun Templat Excel Match Match VBA ini di sini - Templat Excel Match Match VBA

Contohnya, lihat data di bawah.

Dalam data di atas, nilai carian adalah nama Jabatan, dan berdasarkan nama jabatan ini, kita perlu mengekstrak jumlah gaji.

Tetapi masalahnya di sini adalah lajur hasil ada di lajur pertama dan lajur nilai carian selepas itu lajur hasil. Dalam kes ini, VLOOKUP tidak dapat mengambil jumlah gaji kerana VLOOKUP hanya berfungsi dari kanan ke kiri bukan dari kiri ke kanan.

Dalam kes ini, kita perlu menggunakan formula kombinasi fungsi VBA INDEX & MATCH. Mari kita laksanakan tugas mencari jumlah gaji setiap jabatan dalam kod VBA.

Langkah 1: Mulakan rutin matahari.

Langkah 2: Menyatakan pemboleh ubah VBA Integer.

Kod:

 Sub INDEX_MATCH_Contoh1 () Dim k Sebagai Sub End Integer 

Langkah 3: Sekarang buka Untuk Gelung Seterusnya di VBA.

Kod:

 Sub INDEX_MATCH_Contoh1 () Dim k Sebagai Integer Untuk k = 2 Hingga 5 Seterusnya k Akhir Sub 

Langkah 4: Di dalam gelung VBA jalankan formula. Pada lajur ke-5, kita perlu menerapkan formula, jadi kodnya adalah CELLS (k, 5). Nilai =

Kod:

 Sub INDEX_MATCH_Contoh1 () Dim k Sebagai Integer Untuk k = 2 hingga 5 Sel (k, 5). Nilai = Selanjutnya Akhir Akhir 

Langkah 5: Di sel itu, kita perlu menerapkan formula VBA INDEX & MATCH. Seperti yang saya katakan, kita perlu menggunakan fungsi ini sebagai Fungsi Lembar Kerja di kelas vba, jadi buka kelas fungsi lembaran kerja.

Kod:

Sub INDEX_MATCH_Contoh1 () Dim k Sebagai Integer Untuk k = 2 hingga 5 Sel (k, 5). Nilai = Fungsi Lembaran Kerja. Selanjutnya Akhir Sub

Langkah 6: Setelah memasuki kelas fungsi lembaran kerja kita dapat melihat semua fungsi lembaran kerja yang ada jadi pilih fungsi INDEX.

Kod:

 Sub INDEX_MATCH_Contoh1 () Dim k Sebagai Integer Untuk k = 2 Hingga 5 Sel (k, 5). Nilai = Lembaran KerjaFungsi.Indeks (k Akhir Selanjutnya 

Langkah 7: Semasa menggunakan fungsi lembaran kerja di VBA, anda harus benar-benar yakin dengan hujah formula. Argumen pertama adalah susunan iaitu dari lajur mana kita memerlukan hasilnya, dalam kes ini, kita memerlukan hasilnya dari A2 hingga A5.

Kod:

 Sub INDEX_MATCH_Contoh1 () Dim k Sebagai Integer Untuk k = 2 Hingga 5 Sel (k, 5). Nilai = Lembaran KerjaFungsi.Index (Julat ("A2: A5"), Sub Akhir Akhir seterusnya 

Langkah 8: Selanjutnya adalah dari nombor baris mana kita memerlukan hasilnya. Seperti yang telah kita lihat contoh sebelumnya, kita tidak dapat memberikan nombor baris secara manual setiap kali. Oleh itu, gunakan fungsi MATCH.

Untuk menggunakan fungsi MATCH sekali lagi, kita perlu membuka kelas Fungsi Lembaran Kerja.

Kod:

 Sub INDEX_MATCH_Contoh1 () Dim k Sebagai Integer Untuk k = 2 hingga 5 Sel (k, 5). Nilai = Lembaran KerjaFungsi.Index (Julat ("A2: A5"), Lembaran KerjaFungsi.Match (Next Next End End 

Langkah 9: MATCH berfungsi argumen pertama adalah nilai LOOKUP, di sini nilai pencarian kami adalah nama jabatan, ada di dalam sel (2, 4).

Oleh kerana setiap kali nombor baris harus berubah, kita dapat membekalkan pemboleh ubah "k" sebagai ganti nombor baris manual 2. Sel (k, 4). Nilai

Kod:

 Sub INDEX_MATCH_Contoh1 () Dim k Sebagai Integer Untuk k = 2 hingga 5 Sel (k, 5). Nilai = Lembaran KerjaFungsi.Index (Julat ("A2: A5"), Lembaran KerjaFungsi.Match (Sel (k, 5). Nilai, Seterusnya k Akhir Sub 

Langkah 10: Seterusnya, kita perlu menyebut julat nilai jabatan iaitu Range ( "B2: B5").

Kod:

 Sub INDEX_MATCH_Contoh1 () Dim k Sebagai Integer Untuk k = 2 hingga 5 Sel (k, 5). Nilai = Lembaran KerjaFungsi.Index (Julat ("A2: A5"), Lembaran KerjaFungsi.Match (Sel (k, 5). Nilai, Julat ("B2: B5"), 

Seterusnya k

Sub Akhir

Langkah 11: Seterusnya letakkan argumen sebagai 0 kerana kita memerlukan padanan tepat dan tutup tanda kurung.

Kod:

 Sub INDEX_MATCH_Contoh1 () Dim k Sebagai Integer Untuk k = 2 hingga 5 Sel (k, 5). Nilai = Lembaran KerjaFungsi.Index (Julat ("A2: A5"), Lembaran KerjaFungsi.Match (Sel (k, 4). Nilai, Julat ("B2: B5"), 0)) 

Seterusnya k

Sub Akhir

Ok, kita selesai dengan bahagian pengkodan. Mari kita jalankan kod untuk menghasilkan lajur 5.

Oleh itu, kami mendapat hasilnya.

Kita boleh menggunakan formula ini sebagai alternatif fungsi VLOOKUP.