TL;DR
INDEX MATCH adalah kombinasi dua fungsi Excel buat nyari data: MATCH nyari posisi baris dari nilai yang dicari, lalu INDEX ngambil isi sel di posisi itu dari kolom hasil. Sintaksnya =INDEX(kolom_hasil; MATCH(nilai_dicari; kolom_cari; 0)). Beda dari VLOOKUP, INDEX MATCH bisa nyari ke arah kiri dan gak rusak waktu ada kolom disisipin di tengah tabel.
INDEX MATCH adalah kombinasi dua fungsi Excel yang kerja bareng buat nyari data. MATCH nyari posisi barisnya, INDEX ngambil isinya.
Duet ini udah jadi standar analis Excel selama belasan tahun, jauh sebelum XLOOKUP muncul. Dan sampai sekarang masih relevan, soalnya jalan di semua versi Excel sejak 2007.
Contoh di sini pakai data toko_berkah: 8 produk warung dengan kode, nama, kategori, harga, dan stok.
| A (kode_produk) | B (nama_produk) | C (kategori) | D (harga) | E (stok) | |
|---|---|---|---|---|---|
| 2 | BRK-001 | Beras Pandan Wangi 5kg | Sembako | 78.000 | 42 |
| 3 | BRK-002 | Minyak Goreng 2L | Sembako | 34.500 | 15 |
| 4 | BRK-003 | Gula Pasir 1kg | Sembako | 17.000 | 60 |
| 5 | BRK-004 | Kopi Bubuk 200g | Minuman | 23.000 | 8 |
| 6 | BRK-005 | Teh Celup 25s | Minuman | 12.500 | 0 |
| 7 | BRK-006 | Sabun Mandi 80g | Perawatan | 4.500 | 120 |
| 8 | BRK-007 | Sampo Sachet 12s | Perawatan | 15.000 | 33 |
| 9 | BRK-008 | Deterjen 800g | Perawatan | 21.500 | 27 |
INDEX MATCH adalah cara nyari data di tabel dengan dua fungsi bersarang: MATCH ngasih tau posisi baris tempat nilai yang kamu cari berada, terus INDEX ngambil isi sel di posisi itu dari kolom yang kamu tunjuk.
Bentuk lengkapnya:
=INDEX(kolom_hasil; MATCH(nilai_dicari; kolom_cari; 0))
Bacanya dari dalam ke luar. MATCH jalan duluan, hasilnya angka. Angka itu jadi bahan buat INDEX.
Aku pakai titik koma (;) sebagai pemisah argumen, sesuai setelan regional Indonesia. Kalau Excel kamu English, ganti jadi koma.
INDEX ngambil nilai dari sebuah range berdasarkan nomor baris (dan opsional nomor kolom).
=INDEX(D2:D9; 4)
Hasil: 23000
Artinya: dari range D2:D9, ambil baris ke-4. Baris ke-4 di range itu adalah D5, isinya harga Kopi Bubuk.
Hati-hati di sini: angka 4 itu posisi di dalam range, bukan nomor baris di sheet. Range mulai dari D2, jadi baris ke-1 = D2, baris ke-4 = D5. Salah paham soal ini yang bikin banyak orang meleset satu baris.
Penjelasan argumen lengkapnya ada di halaman fungsi INDEX.
MATCH kebalikannya. Kamu kasih nilai, dia balikin posisinya.
=MATCH("BRK-004"; A2:A9; 0)
Hasil: 4
BRK-004 ada di baris ke-4 dari range A2:A9. Selesai, itu doang kerjaan MATCH.
Angka 0 di akhir itu argumen match_type, artinya "cari yang persis sama". Ini yang hampir selalu kamu pakai.
| match_type | Artinya | Syarat data |
|---|---|---|
0 | Persis sama | Bebas, gak perlu urut |
1 | Nilai terbesar yang ≤ nilai dicari | Harus urut naik |
-1 | Nilai terkecil yang ≥ nilai dicari | Harus urut turun |
Lupa nulis 0 itu sumber bug klasik. Default MATCH adalah 1, dan di tabel yang gak urut hasilnya ngawur tanpa error.
Tinggal taruh MATCH di dalam argumen kedua INDEX. Kasusnya: kode produk diketik di sel H2, harganya muncul di H3.
BRK-004 di H2.=INDEX(D2:D9; ...). D2:D9 adalah kolom harga, isi yang mau kamu ambil.MATCH(H2; A2:A9; 0). A2:A9 kolom kode, tempat nyari.=INDEX(D2:D9; MATCH(H2; A2:A9; 0))
Hasil: 23000
Kalau rumusnya bakal di-copy ke bawah, kunci range-nya:
=INDEX($D$2:$D$9; MATCH($H2; $A$2:$A$9; 0))
Aturan tanda dolar lengkapnya ada di glosarium absolute reference.
Rumus VLOOKUP yang setara:
=VLOOKUP(H2; A2:D9; 4; FALSE)
Angka 4 itu titik lemahnya. Begitu ada yang nyisipin kolom baru di antara B dan C, kolom harga geser ke posisi 5, tapi rumusnya masih nunjuk 4. Hasilnya berubah diam-diam, gak ada error, cuma angka yang salah.
INDEX MATCH gak pernah kena masalah ini, soalnya dia nunjuk range, bukan nomor kolom. Kolom digeser, range-nya ikut geser sendiri.
| Hal | VLOOKUP | INDEX MATCH |
|---|---|---|
| Arah pencarian | Cuma ke kanan | Kiri, kanan, bebas |
| Kolom disisipkan | Rumus jadi salah | Rumus tetap benar |
| Range yang dibaca | Seluruh lebar tabel | Cuma 2 kolom |
| Panjang rumus | Pendek | Lebih panjang |
| Kurva belajar | Gampang | Butuh paham 2 fungsi |
| Versi Excel | Semua | Semua (sejak 2007) |
Jujur aja: VLOOKUP lebih gampang diketik dan lebih gampang diajarin. Buat tabel sekali pakai yang kolomnya gak bakal berubah, VLOOKUP udah cukup. INDEX MATCH kepakai di file yang hidup lama dan disentuh banyak orang.
Dan kalau kantor kamu udah full Excel 365, XLOOKUP ngasih semua keuntungan INDEX MATCH dengan sintaks yang lebih pendek.
Balik kasusnya: kamu punya nama produk, mau tau kodenya. Kolom kode (A) ada di kiri kolom nama (B). VLOOKUP nyerah, INDEX MATCH gak peduli.
=INDEX(A2:A9; MATCH("Teh Celup 25s"; B2:B9; 0))
Hasil: BRK-005
MATCH nyari di kolom B, INDEX ngambil dari kolom A. Urutan kolom di sheet gak ngaruh sama sekali.
INDEX punya argumen ketiga: nomor kolom. Isi dua-duanya pakai MATCH, dan kamu dapat lookup silang, baris dan kolom sekaligus.
Anggap kamu ketik kode produk di H2 dan nama kolom (misalnya "stok") di H3:
=INDEX($A$1:$E$9;
MATCH($H$2; $A$1:$A$9; 0);
MATCH($H$3; $A$1:$E$1; 0))
H2 = BRK-006, H3 = stok -> Hasil: 120
MATCH pertama nyari baris, MATCH kedua nyari kolom. Perhatiin range-nya mulai dari baris 1 (baris header), soalnya MATCH kolom butuh baca judul kolom.
Buat lookup horizontal yang lebih sederhana, ada juga rumus HLOOKUP.
Bu Sari punya sheet kedua isinya harga modal per kode produk. Dia mau tau margin tiap produk tanpa nyusun ulang dua tabel itu.
Di sheet modal, kolom A kode produk dan kolom B harga modal. Rumus di sheet produk:
Modal : =INDEX(modal!$B$2:$B$9; MATCH($A2; modal!$A$2:$A$9; 0))
Margin : =D2 - INDEX(modal!$B$2:$B$9; MATCH($A2; modal!$A$2:$A$9; 0))
Margin%: =(D2 - INDEX(modal!$B$2:$B$9; MATCH($A2; modal!$A$2:$A$9; 0))) / D2
Hasilnya bikin kaget. Beras Pandan Wangi, produk paling laku dan paling mahal, margin-nya cuma 8%. Sabun Mandi yang harganya Rp 4.500 doang punya margin 33%.
Dari 8 produk toko_berkah, 3 produk berkontribusi 71% ke total profit, dan semuanya dari kategori Perawatan. Sembako muter uang paling banyak, tapi profitnya tipis.
Insight kayak gini yang bikin lookup ada gunanya. Biar tau produk mana yang beneran ngasih makan tokonya.
=MATCH(H2; A2:A9) tanpa argumen ketiga bakal pakai mode approximate. Di tabel kode produk yang gak urut alfabet, hasilnya ngawur, dan gak ada error yang ngingetin kamu.
=INDEX(D2:D9; MATCH(H2; A2:A20; 0)) bakal kasih hasil salah. Dua range harus mulai dari baris yang sama dan sama panjangnya. MATCH ngitung posisi relatif, jadi kalau titik startnya beda, posisinya meleset.
Copy rumus ke bawah tanpa $ bikin range-nya ikut turun. Baris ke-10 bakal nyari di range A10:A17, yang isinya udah kosong. Kunci semua range: $A$2:$A$9.
Kode 1001 hasil import CSV sering kesimpan sebagai teks. MATCH bakal keluar #N/A walaupun mata kamu lihat angka yang sama. Cek pakai =ISNUMBER(A2), atau samain dulu formatnya.
=IFERROR(INDEX(...); "") emang bikin laporan bersih. Tapi juga nyembunyiin data yang beneran gak ketemu. Isi teks yang jelas kayak "Kode gak terdaftar", biar kamu tau bedanya sel kosong dan data hilang.
Di data kecil bedanya gak kerasa. Di data besar INDEX MATCH biasanya sedikit lebih cepat, soalnya dia cuma baca dua kolom, sementara VLOOKUP baca seluruh lebar tabel yang kamu blok. Bedanya baru kelihatan di file dengan ribuan rumus dan puluhan ribu baris.
#REF! berarti INDEX diminta ngambil baris yang di luar range. Misalnya MATCH balikin 12 padahal range INDEX cuma 8 baris. Biasanya gara-gara range INDEX dan range MATCH beda panjang atau beda titik start.
Bisa, gabungin kriterianya jadi satu teks di dalam MATCH: =INDEX(D2:D9; MATCH(H2&H3; A2:A9&C2:C9; 0)). Di Excel 2019 ke bawah, rumus ini harus dikonfirmasi pakai Ctrl+Shift+Enter. Di Excel 365 langsung jalan.
Perlu, kalau kamu kerja di lingkungan yang versinya campur-campur. Banyak kantor Indonesia masih pakai Excel 2016 dan 2019, terutama di perusahaan yang lisensinya belum di-upgrade. File berisi XLOOKUP bakal keluar #NAME? di mesin mereka.
MATCH nyari posisi. INDEX ngambil isi. Digabung, jadi lookup yang gak rusak waktu tabel kamu diubah orang lain.
Rumus intinya cuma satu, hapal ini aja: =INDEX(kolom_hasil; MATCH(dicari; kolom_cari; 0)).
Angka 0 itu jangan pernah dilupain.
Sekarang buka file kerjaan kamu dan ubah satu VLOOKUP jadi INDEX MATCH. Kalau mau latihan step by step pakai contoh interaktif, kulik di halaman fungsi MATCH.
Mau praktek langsung? Mulai latihan SQL gratis
Latihan interaktif, langsung di browser.
Cara pakai rumus FV dan PV Excel buat hitung nilai uang di masa depan dan sekarang. Lengkap dengan contoh tabungan dan target modal UMKM.
Investasi kelihatan untung di atas kertas, tapi nilai uang berubah tiap tahun. NPV dan IRR Excel bantu kamu nilai apakah proyek beneran layak, bukan cuma kelihatan untung.
Sebelum ambil pinjaman, kamu bisa hitung sendiri cicilan bulanannya pakai satu rumus. Ini cara PMT Excel bekerja, lengkap dengan contoh modal usaha dan jebakan bunga tahunan.