Pencocokan Indeks VBA

Indeks Kecocokan di VBA

Fungsi INDEX & MATCH dalam kombinasi VBA adalah alternatif dari fungsi VLOOKUP di excel. Di VBA, kami tidak menikmati kemewahan menggunakan fungsi INDEX & MATCH secara langsung karena kedua fungsi ini bukan bagian dari fungsi built-in VBA. Namun, kami masih dapat menggunakannya sebagai bagian dari kelas fungsi lembar kerja.

Bagaimana Cara Menggunakan Pencocokan Indeks di VBA? (Selangkah demi selangkah)

Anda dapat mengunduh Templat Excel Pencocokan Indeks VBA ini di sini - Templat Excel Kecocokan Indeks VBA

Misalnya, lihat data di bawah ini.

Pada data di atas, nilai pencarian adalah nama Departemen, dan berdasarkan nama departemen ini kita perlu mengekstrak jumlah gaji.

Tetapi masalahnya di sini adalah kolom hasil ada di kolom pertama dan kolom nilai pencarian ada setelah kolom hasil. Dalam hal ini, VLOOKUP tidak dapat mengambil jumlah gaji karena VLOOKUP hanya berfungsi dari kanan ke kiri bukan dari kiri ke kanan.

Dalam kasus ini, kita perlu menggunakan rumus kombinasi dari fungsi VBA INDEX & MATCH. Mari kita lakukan tugas menemukan jumlah gaji setiap departemen dalam kode VBA.

Langkah 1: Mulailah rutinitas berjemur.

Langkah 2: Deklarasikan variabel VBA Integer.

Kode:

 Sub INDEX_MATCH_Example1 () Dim k Sebagai Integer End Sub 

Langkah 3: Sekarang buka Untuk Loop Berikutnya di VBA.

Kode:

 Sub INDEX_MATCH_Example1 () Dim k Sebagai Integer Untuk k = 2 Sampai 5 Selanjutnya k End Sub 

Langkah 4: Di dalam loop VBA, jalankan rumus. Di kolom ke-5, kita perlu menerapkan rumus, jadi kodenya adalah CELLS (k, 5) .Value =

Kode:

 Sub INDEX_MATCH_Example1 () Dim k Sebagai Integer Untuk k = 2 Sampai 5 Sel (k, 5) Nilai = Berikutnya k End Sub 

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

Kode:

Sub INDEX_MATCH_Example1 () Dim k Sebagai Integer Untuk k = 2 Sampai 5 Sel (k, 5) .Value = Fungsi Lembar Kerja. Berikutnya k Akhiri Sub

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

Kode:

 Sub INDEX_MATCH_Example1 () Dim k Sebagai Integer Untuk k = 2 Sampai 5 Sel (k, 5) .Value = WorksheetFunction.Index (Next k End Sub 

Langkah 7: Saat menggunakan fungsi lembar kerja di VBA, Anda harus benar-benar yakin dengan argumen rumusnya. Argumen pertama adalah array yaitu dari kolom mana kita membutuhkan hasilnya, dalam hal ini kita membutuhkan hasil dari A2 hingga A5.

Kode:

 Sub INDEX_MATCH_Example1 () Dim k Sebagai Integer Untuk k = 2 Sampai 5 Sel (k, 5) .Value = WorksheetFunction.Index (Range ("A2: A5"), Next k End Sub 

Langkah 8: Selanjutnya adalah dari nomor baris mana kita membutuhkan hasilnya. Seperti yang telah kita lihat pada contoh sebelumnya, kita tidak dapat menyediakan nomor baris secara manual setiap saat. Jadi gunakan fungsi MATCH.

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

Kode:

 Sub INDEX_MATCH_Example1 () Dim k Sebagai Integer Untuk k = 2 Sampai 5 Sel (k, 5) .Value = WorksheetFunction.Index (Range ("A2: A5"), WorksheetFunction.Match (Next k End Sub 

Langkah 9: Fungsi MATCH argumen pertama adalah nilai LOOKUP, di sini nilai pencarian kita adalah nama departemen, itu ada di sel (2, 4).

Karena setiap kali nomor baris harus berubah, kita dapat menyediakan variabel "k" di tempat nomor baris manual 2. Sel (k, 4).

Kode:

 Sub INDEX_MATCH_Example1 () Dim k Sebagai Integer Untuk k = 2 Sampai 5 Sel (k, 5) .Value = WorksheetFunction.Index (Range ("A2: A5"), WorksheetFunction.Match (Cells (k, 5) .Value, Next k Akhiri Sub 

Langkah 10: Selanjutnya kita perlu menyebutkan kisaran nilai departemen yaitu Range ("B2: B5").

Kode:

 Sub INDEX_MATCH_Example1 () Dim k Sebagai Integer Untuk k = 2 Sampai 5 Sel (k, 5) .Value = WorksheetFunction.Index (Range ("A2: A5"), WorksheetFunction.Match (Cells (k, 5) .Value, Range ("B2: B5"), 

K berikutnya

Akhiri Sub

Langkah 11: Selanjutnya letakkan argumen sebagai 0 karena kita membutuhkan pencocokan tepat dan menutup tanda kurung.

Kode:

 Sub INDEX_MATCH_Example1 () Dim k Sebagai Integer Untuk k = 2 Sampai 5 Sel (k, 5) .Value = WorksheetFunction.Index (Range ("A2: A5"), WorksheetFunction.Match (Cells (k, 4) .Value, Range ("B2: B5"), 0)) 

K berikutnya

Akhiri Sub

Oke, kita selesai dengan bagian pengkodean. Mari kita jalankan kode untuk mendapatkan hasil di kolom 5.

Jadi, kami mendapatkan hasilnya.

Kita bisa menggunakan rumus ini sebagai alternatif dari fungsi VLOOKUP.