Vlookup merupakan salah satu rumus yang paling sering saya gunakan di Excel. Vlookup saya gunakan jika saya perlu mencari suatu atribut turunan dari suatu ID kunci yang diambil/dibandingkan dari suatu source Tabel Database tertentu.
Sebagai contoh, terdapat source Tabel Database berikut:
Lalu terdapat suatu data mentah bahwa Pekerja dengan Nomor Pegawai berikut adalah Pekerja yang datang terlambat hari ini.
Data awal yang kita miliki hanyalah Nomor Pegawai, padahal kita perlu detil Nama Pekerja dan asal Fungsi Pekerja tersebut. Untuk mencari Nama Pekerja, kita bisa dengan mudah mendapatkannya dengan menggunakan rumus vlookup pada cell H3 sebagai berikut.
Yang menjadi masalah, bagaimana kita mencari asal Fungsi Pekerja? Vlookup hanya bisa mencari/menoleh ke kolom sebelah kanan dari ID kunci yang kita jadikan acuan. Dalam hal ini, Fungsi Pekerja yang berada di sebelah kiri Nomor Pegawai tidak bisa kita cari langsung dengan menggunakan rumus vlookup.
Opsi 1: Tetap Menggunakan VLOOKUP
Jika ingin tetap menggunakan rumus vlookup, kita bisa memodifikasi source Tabel Database sedemikian rupa agar kolom Fungsi Pekerja berada di sebelah kanan kolom Nomor Pegawai. Bisa dengan memindahkan/meng-copy kolom Nomor Pegawai ke sebelah kiri kolom Fungsi Pekerja, atau sebaliknya bisa dengan memindahkan/meng-copy kolom Fungsi Pekerja ke sebelah kanan kolom Nomor Pegawai. Seperti contoh berikut:
Sehingga tinggal kita buat rumus vlookup pada cell J3 sebagai berikut:
Untuk contoh di atas di mana source Tabel Database hanya memiliki 22 baris data, masih memungkinkan jika kita menggunakan rumus vlookup. Bagaimana jika kita punya puluhan atau ratusan ribu baris data di source Tabel Database? Sekali kita melakukan eksekusi cut atau copy kolom pada file excel yang besar akan membutuhkan proses yang lumayan lama. Belum lagi jika kita mempunyai keterbatasan dalam memodifikasi source Tabel Database, misal karena hanya memiliki otrisasi read-only atau karena source Tabel Database tersebut sudah terhubung dengan banyak rumus lainnya sehingga tidak memungkinkan dilakukan modifikasi urutan kolom yang ada.
Opsi 2: Menggunakan Kombinasi Rumus INDEX-MATCH
Kombinasi rumus index dan match bisa menjalankan fungsi yang sama seperti vlookup, dan tidak hanya bisa mencari/menoleh ke kolom sebelah kanan dari ID kunci yang kita jadikan acuan, rumus index-match pun bisa mencari/menoleh ke kolom sebelah kiri dari ID kunci yang kita jadikan acuan.
Secara garis besar, Index adalah rumus untuk menunjukan data pada urutan tertentu pada suatu kolom/baris, dan match adalah rumus untuk mencari posisi data (urutan) pada suatu kolom/baris. Saya tidak akan membahas detil struktur sintaks pada rumus index dan match, namun saya akan membahas cara praktis penulisan rumus index-match yang dibandingkan dengan penulisan rumus vlookup.
Pada dasarnya, dalam pengoperasian vlookup dan index-match pada kasus seperti ini terdapat 3 variabel yang perlu diperhatikan, yakni:
- Cell ID Kunci yang ingin dicari turunan atributnya (selanjutnya kita sebut X – warna hijau)
- Kolom ID Kunci pada source Tabel Database (Y – warna merah)
- Kolom Atribut Turunan yang dicari pada source Tabel Database (Z – warna biru)
Terdapat sedikit perbedaan pada cara penulisan 3 variabel tersebut:
VARIABEL | VLOOKUP | INDEX-MATCH |
X | Cell ID Kunci (Misal = G3) | Cell ID Kunci (Misal = G3) |
Y | Kolom ID Kunci s.d. Kolom Atribut Turunan yang Dicari (Misal = C:D) | Kolom ID Kunci Saja (Misal = C:C) |
Z | Urutan Kolom Atribut Turunan yang Dicari, dihitung dari Kolom ID Kunci (Misal = 2) | Langsung Kolom Atribut Turunan yang Dicari (Misal = D:D) |
Selain perbedaan pada cara penulisan variabel, urutan penulisan variabel pun sedikit berbeda:
Urutan pada rumus vlookup:
=vlookup(X;Y;Z;0)
Urutan pada rumus Index-Match:
=INDEX(Z(MATCH(X;Y;0))
Sehingga, perbandingan penulisan untuk index-match pada contoh kasus mencari Nama Pekerja dari Nomor Pegawai adalah dengan memasukkan rumus berikut pada cell H3:
menggunakan vlookup:
=VLOOKUP(G3;C:D;2;0)
menggunakan index-match:
=INDEX(D:D;(MATCH(G3;C:C;0))
Contoh di atas adalah contoh penulisan rumus untuk mencari Nama dari Nomor Pegawai. Bagaimana untuk mencari Fungsi dari Nomor Pegawai? Dengan menggunakan index-match, tidak peduli di mana posisi kolom atribut yang akan kita cari (baik di sebelah kiri maupun di sebelah kanan ID kunci), kita cukup mengganti variabel Z, dari yang semula kolom Nama (D:D), menjadi kolom Fungsi (B:B), sehingga di cell I3 ditulis sebagai berikut:
=INDEX(B:B;(MATCH(G3;C:C;0))
Kesimpulan
Lalu rumus mana yang paling cocok? Jawabannya: tergantung.
Jika kita selalu berhadapan dengan kebutuhan data yang selalu hanya perlu “menoleh” ke kanan di source Tabel Database, atau jumlah baris di Tabel Database yang kita hadapi hanya puluhan s.d. ratusan saja, rumus vlookup saja menurut saya cukup.
Namun, jika kita sesekali atau bahkan sering berhadapan dengan kebutuhan data yang perlu “menoleh” ke kiri di source Tabel Database, atau jumlah baris di Tabel Database yang kita hadapi lebih dari ribuan baris, kita perlu membiasakan diri untuk menggunakan index-match. Walaupun untuk keperluan “menoleh” ke kanan bisa dilakukan oleh vlookup, kita sebaiknya tetap menggunakan index-match untuk “menoleh” ke kanan, agar pikiran dan jari kita terbiasa dengan sintaks index-match.
Silahkan download contoh file excel kertas kerja di atas pada link ini.