Kecocokan Indeks VBA - Cara Menggunakan Fungsi Pencocokan Indeks di VBA (Contoh)

Kecocokan Indeks di VBA

Fungsi INDEX & MATCH dalam kombinasi VBA adalah alternatif dari fungsi VLOOKUP di excel. Di VBA, kami tidak memiliki 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)

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.

Tapi masalahnya di sini adalah kolom hasil ada di kolom pertama, dan kolom nilai pencarian setelahnya ada di 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 rumusnya. Pada kolom ke- 5 , kita perlu menerapkan rumusnya, 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 masuk ke kelas fungsi lembar kerja, kita bisa 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: PERTANDINGAN fungsi argumen pertama adalah nilai LOOKUP; di sini, nilai pencarian kami adalah nama departemen; itu ada di dalam sel (2, 4).

Karena setiap kali nomor baris harus berubah, kita dapat menyediakan variabel "k" sebagai ganti 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, taruh argumen sebagai 0 karena kita membutuhkan kecocokan yang tepat dan tutup 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.

Artikel yang menarik...