XLOOKUP vs LOOKUP, Mana Lebih Efektif?
Kalau kamu sering main Excel atau Google Sheets pasti pernah kebingungan milih fungsi lookup yang tepat.
Dulu orang sukanya pakai **VLOOKUP** atau **LOOKUP**, sekarang muncul **XLOOKUP** yang bilangannya lebih powerfull.
Di artikel ini kita bahas **XLOOKUP vs LOOKUP** secara tuntas — dari definisi, sintaks, contoh nyata, trik advanced, sampai rekomendasi kapan pakai masing-masing.
Gaya santai, paragraf pendek, banyak contoh tabel & rumus biar kamu langsung praktek. Yuk gas!
---
## Ringkasan singkat (kalau mau cepat)
* **LOOKUP**: fungsi lama, sederhana, cocok untuk pencarian dasar (biasanya approximate) — but hati-hati soal syarat data terurut.
* **XLOOKUP**: fungsi modern di Excel (Microsoft 365 / Excel terbaru). Lebih fleksibel: lookup kiri, return array, opsi `if_not_found`, match/ search modes, dan reverse lookup.
* **Kesimpulan singkat**: untuk kerjaan sehari-hari dan stabilitas, **XLOOKUP** lebih efektif dan lebih mudah dipakai daripada **LOOKUP**. Tapi kalau kamu pakai Google Sheets atau Excel versi lama, pakai LOOKUP / VLOOKUP / INDEX+MATCH.
---
## Daftar isi (biar gampang browsing)
1. Apa itu LOOKUP & XLOOKUP — gambaran singkat
2. Sintaks dan arti argumen (lengkap)
3. Contoh tabel + rumus siap pakai
4. Perbandingan fitur: tabel ringkas
5. Kasus nyata dan implementasi step-by-step
6. Trik lanjutan XLOOKUP: reverse, last match, nearest, wildcard
7. Error handling & best practice (IFERROR, sanitize input)
8. Kapan pakai LOOKUP / XLOOKUP / alternatif lain (INDEX+MATCH)
9. Performance & optimasi workbook besar
10. Latihan + solusi
11. Ringkasan & rekomendasi praktis
---
## 1. Apa itu LOOKUP & XLOOKUP — gambaran singkat
**LOOKUP** itu fungsi lookup lama. Ada dua bentuknya: *vector form* dan *array form*. Biasanya digunakan untuk cari nilai di sebuah range; kalau tidak ketemu, LOOKUP cenderung mengembalikan nilai terdekat (approximate) sehingga butuh tabel terurut dalam banyak kasus.
**XLOOKUP** adalah fungsi lookup modern yang diperkenalkan Microsoft untuk Excel pada produk Microsoft 365 / Excel terbaru.
XLOOKUP menggantikan banyak keterbatasan VLOOKUP/HLOOKUP/LOOKUP.
Fiturnya termasuk pencarian horizontal/vertikal, lookup kiri, nilai default saat tidak ketemu (`if_not_found`), berbagai mode pencocokan, dan mode pencarian (mis. dari belakang untuk dapat hasil terakhir).
---
## 2. Sintaks & arti argumen
### LOOKUP (vector form)
```
=LOOKUP(lookup_value, lookup_vector, [result_vector])
```
* `lookup_value`: nilai yang dicari.
* `lookup_vector`: satu baris atau satu kolom lokasi pencarian.
* `result_vector` (opsional): range hasil dari kolom/ baris yang sejajar dengan lookup_vector.
> Perilaku penting: LOOKUP melakukan *approximate match*, jadi jika `lookup_value` tidak ada, ia akan mengambil nilai terbesar yang ≤ `lookup_value`. Karena itu `lookup_vector` harus **diurutkan ascending** agar hasil benar.
### LOOKUP (array form)
```
=LOOKUP(lookup_value, array)
```
* `array` biasanya tabel; LOOKUP akan mengembalikan nilai di baris terakhir/kolom paling kanan yang cocok — perilakunya tricky, jarang dipakai modern.
### XLOOKUP (Excel modern)
```
=XLOOKUP(lookup_value, lookup_array, return_array, [if_not_found], [match_mode], [search_mode])
```
* `lookup_value`: nilai yang dicari.
* `lookup_array`: range (1D) tempat mencari.
* `return_array`: range (1D) yang isinya nilai yang ingin dikembalikan (harus sejajar dengan lookup_array).
* `if_not_found` (opsional): apa yang dikembalikan kalau gak ketemu (mis. "Tidak Ditemukan").
* `match_mode` (opsional): 0 = exact (default), -1 = exact or next smaller, 1 = exact or next larger, 2 = wildcard match.
* `search_mode` (opsional): 1 = search first→last (default), -1 = search last→first (reverse), 2 = binary (ascending), -2 = binary (descending).
Kelebihan XLOOKUP: `if_not_found` bikin rumus lebih bersih (nggak perlu IFERROR), `match_mode` dan `search_mode` memberikan kontrol lebih, dan kamu bisa lookup ke kiri tanpa trik.
---
## 3. Contoh tabel + rumus langsung pakai (step-by-step)
Kita pakai beberapa contoh nyata supaya paham cara kerja.
### Contoh 1 — Cari harga produk (exact match)
Tabel `Produk`:
| Kode | Nama | Harga |
| ---- | --------- | ----: |
| P001 | Pensil | 3000 |
| P002 | Buku | 5500 |
| P003 | Penghapus | 2500 |
Kalau di A6 ada kode `P002`, ambil harga:
**Dengan LOOKUP (vector)** — perlu susun lookup_vector dan result_vector sejajar:
```
=LOOKUP(A6, A2:A4, C2:C4)
```
Tapi hati-hati: LOOKUP cenderung approximate; kalau A2:A4 tidak diurut, hasil bisa salah. Untuk kode biasanya kita pakai exact lookup (VLOOKUP/XLOOKUP).
**Dengan XLOOKUP**:
```
=XLOOKUP(A6, A2:A4, C2:C4, "Tidak Ditemukan", 0)
```
Lebih aman karena `match_mode` 0 = exact.
### Contoh 2 — Ambil nama dari NIS tapi lookup ada di kolom kanan (lookup kiri)
Jika key ada di kolom B, nama di kolom A:
| Harga | Kode |
| ----: | ---- |
| 3000 | P001 |
| 5500 | P002 |
| 2500 | P003 |
Cari harga berdasarkan kode di D2:
**XLOOKUP (langsung bisa lookup kiri)**:
```
=XLOOKUP(D2, B2:B4, A2:A4, "Kode gak ada")
```
**LOOKUP**: nggak bisa langsung lookup kiri tanpa bikin helper column. Jadi XLOOKUP lebih fleksibel di sini.
### Contoh 3 — Jika data di Google Sheets (tanpa XLOOKUP)
Google Sheets mendukung `LOOKUP` dan `VLOOKUP`; untuk fitur XLOOKUP di Excel, di Sheets kamu biasanya pakai `INDEX+MATCH` atau `FILTER`:
```
=INDEX(C2:C4, MATCH(D2, A2:A4, 0))
```
Itu setara dengan XLOOKUP untuk kasus vertical lookup.
---
## 4. Perbandingan fitur — tabel ringkas
| Fitur | XLOOKUP | LOOKUP |
| --------------------------- | ------------------: | :----------------------------------------- |
| Exact match default? | Bisa (match_mode=0) | Approximate default |
| Lookup kiri? | Ya | Sulit / butuh trik |
| Return multiple kolom/array | Ya (dynamic arrays) | Tidak mudah |
| if_not_found parameter | Ya | Tidak |
| Reverse search (last match) | Ya (search_mode=-1) | Sulit |
| Wildcard matching | Ya (match_mode=2) | Ya (dengan wildcard) |
| Kebutuhan sorted data | Tidak (untuk exact) | Ya (approximate) |
| Ketersediaan | Excel 365 / terbaru | Excel lama & Sheets (implementasi berbeda) |
Kesimpulannya: XLOOKUP jelas lebih modern dan fleksibel. LOOKUP masih berguna di beberapa kasus, terutama di Google Sheets atau Excel versi lama.
---
## 5. Kasus nyata & implementasi lengkap
Sekarang kita bahas beberapa skenario nyata dan berikan rumus XLOOKUP vs LOOKUP/alternatif.
### Kasus A — Invoice toko: tarik harga & stok
**Data**: sheet `Produk` punya kolom `Kode`, `Nama`, `Harga`, `Stok`.
Form `Order`:
* Input Kode di A2 → otomatis muncul Nama, Harga, Stok.
**XLOOKUP (Excel modern)**:
* Nama:
```
=XLOOKUP(A2, Produk!$A$2:$A$100, Produk!$B$2:$B$100, "Kode tidak ditemukan", 0)
```
* Harga:
```
=XLOOKUP(A2, Produk!$A$2:$A$100, Produk!$C$2:$C$100, 0, 0)
```
* Stok:
```
=XLOOKUP(A2, Produk!$A$2:$A$100, Produk!$D$2:$D$100, 0, 0)
```
**Jika pakai Google Sheets atau Excel lama**:
* Gunakan `INDEX+MATCH`:
```
=IFERROR(INDEX(Produk!$B$2:$B$100, MATCH(A2, Produk!$A$2:$A$100, 0)), "Kode tidak ditemukan")
```
XLOOKUP bikin rumus lebih ringkas dan readable.
### Kasus B — Last purchase date (ambil hasil terakhir jika ada beberapa transaksi)
Tabel `Transaksi` (urut by date):
| Tgl | Kode | Jumlah |
| ---------- | ---- | -----: |
| 2025-01-10 | P001 | 10 |
| 2025-02-05 | P002 | 5 |
| 2025-03-02 | P001 | 7 |
Kamu mau ambil tanggal pembelian terakhir untuk `P001`.
**XLOOKUP (pake search_mode = -1 untuk search last→first)**:
```
=XLOOKUP("P001", Transaksi!$B$2:$B$100, Transaksi!$A$2:$A$100, "Tidak ada", 0, -1)
```
Ini mencari dari bawah ke atas dan ambil first match dari belakang → hasil `2025-03-02`.
**LOOKUP / VLOOKUP**: butuh trik (INDEX+LOOKUP kombinasi) atau sortir terbalik.
### Kasus C — Ambil kategori terdekat (approximate) — tarif pajak / bracket
Tabel tarif berjenjang:
| MinIncome | Tarif |
| --------: | ----: |
| 0 | 5% |
| 50000000 | 15% |
| 250000000 | 25% |
Untuk income = 120,000,000 kamu mau ambil tarif 15%.
**LOOKUP (approximate)** cocok:
```
=LOOKUP(120000000, A2:A4, B2:B4)
```
Atau **XLOOKUP** dengan `match_mode = -1` (exact or next smaller):
```
=XLOOKUP(120000000, A2:A4, B2:B4, "Not Found", -1)
```
Keduanya valid, tapi XLOOKUP lebih eksplisit dan aman.
---
## 6. Trik lanjutan XLOOKUP — fitur yang bikin beda
XLOOKUP punya banyak opsi yang bikin hidup lebih mudah. Berikut beberapa trik penting.
### 6.1 Reverse lookup (dapat hasil terakhir)
Gunakan `search_mode = -1`.
```
=XLOOKUP(lookup_value, lookup_array, return_array, "Not Found", 0, -1)
```
### 6.2 Nearest / next smaller / next larger
* `match_mode = -1` → exact or next smaller (useful untuk bracket)
* `match_mode = 1` → exact or next larger
Contoh:
```
=XLOOKUP(120000000, A2:A10, B2:B10, "Not Found", -1)
```
### 6.3 Wildcard matching
Jika `match_mode = 2`, XLOOKUP menerima wildcard. Misal cari berdasarkan prefix:
```
=XLOOKUP("Pensil*", A2:A100, B2:B100, "Tidak ada", 2)
```
### 6.4 Multiple return columns (dynamic arrays)
Kalau kamu mau ambil beberapa kolom sekaligus:
```
=XLOOKUP(A2, A2:A100, B2:D100)
```
Hasil ini akan spill otomatis ke beberapa kolom (Excel 365 dynamic array). Jadi kamu dapat `Nama | Harga | Stok` sekaligus.
### 6.5 Replace nested IFERROR patterns
Dulu sering pakai `IFERROR(VLOOKUP(...), "Tidak ditemukan")`. XLOOKUP punya argumen `if_not_found`:
```
=XLOOKUP(A2, A2:A100, B2:B100, "Tidak Ditemukan")
```
Bersih dan lebih readable.
---
## 7. Error handling & sanitize input (best practice)
Data di dunia nyata suka berantakan: spasi nyelip, kapitalisasi beda, angka disimpan sebagai teks. Sebelum buat lookup, bersihin input.
### Tips sanitize:
* `TRIM()` → hapus spasi awal/akhir
* `UPPER()`/`LOWER()` → normalisasi kapitalisasi
* `VALUE()` → ubah teks angka ke number
* `SUBSTITUTE(cell, CHAR(160), " ")` → ganti non-breaking space
### Contoh kombinasi:
```
=XLOOKUP(TRIM(UPPER(A2)), INDEX(UPPER(TRIM(Produk!$A$2:$A$100)),0), Produk!$C$2:$C$100, "Tidak Ditemukan")
```
Di Excel lama, kalau fungsi array seperti `UPPER(TRIM(range))` bikin rumit, sebaiknya buat helper column yang sudah dibersihkan.
---
## 8. Kapan pakai LOOKUP / XLOOKUP / INDEX+MATCH / VLOOKUP?
* **Pakai XLOOKUP**: kalau kamu pakai Excel Microsoft 365 / Excel terbaru. Gunakan XLOOKUP buat semua kebutuhan lookup (lookup kiri, last match, multicols).
* **Pakai LOOKUP**: kalau file kecil dan kamu ingin approximate lookup pada data yang terurut (contoh: bracket). Atau di Google Sheets untuk operasi simple.
* **Pakai INDEX+MATCH**: kalau kamu pakai Excel versi lama atau Google Sheets (keduanya mendukung INDEX+MATCH), dan menginginkan fleksibilitas lookup kiri & dynamic column.
* **Pakai VLOOKUP**: masih banyak dipakai untuk kasus vertical lookup sederhana, tapi ingat keterbatasannya (tidak bisa lookup kiri, col_index static).
---
## 9. Performance & optimasi workbook besar
Beberapa tips supaya workbook tetap cepat:
* **Jangan overuse full-column references** (mis. A:A) di XLOOKUP karena bakal lebih lambat. Batasi range.
* **Gunakan helper columns** untuk pre-processing (TRIM/UPPER) bukan menghitung ulang di banyak rumus XLOOKUP.
* **Satu MATCH untuk banyak INDEX**: hitung posisi sekali, pakai hasilnya untuk banyak INDEX—lebih efisien saat ambil banyak kolom.
* **Gunakan Table (Ctrl+T)** di Excel supaya range otomatis; XLOOKUP terhadap Table lebih rapi.
* **Jika bekerja dengan ribuan baris dan banyak lookup**, pertimbangkan Power Query untuk transformasi atau SQL/DB untuk skala besar.
---
## 10. Latihan praktis + solusi (supaya nempel)
### Latihan 1 — Cari harga produk (XLOOKUP)
Tabel produk seperti contoh. Input kode di F2. Tampilkan harga di G2.
**Jawaban**:
```
=XLOOKUP(F2, A2:A100, C2:C100, "Kode tidak ada")
```
### Latihan 2 — Ambil data terakhir (transaksi)
Tabel transaksi (tgl, kode, jumlah). Input kode di F2. Ambil tanggal transaksi terakhir.
**Jawaban**:
```
=XLOOKUP(F2, B2:B100, A2:A100, "Tidak ada", 0, -1)
```
### Latihan 3 — Bracket tarif (approximate)
Tabel bracket min-income di A2:A10, tarif di B2:B10. Income di F2. Ambil tarif.
**Jawaban**:
```
=XLOOKUP(F2, A2:A10, B2:B10, "Not Found", -1)
```
atau pakai LOOKUP langsung:
```
=LOOKUP(F2, A2:A10, B2:B10)
```
### Latihan 4 — Multiple return (nama + harga + stok)
Input kode di F2. Ambil tiga kolom sekaligus (spill).
**Jawaban (Excel 365)**:
```
=XLOOKUP(F2, A2:A100, B2:D100, "Kode gak ada")
```
Hasil akan spill ke tiga kolom.
---
## 11. Migrasi cepat dari VLOOKUP/LOOKUP ke XLOOKUP
Kalau kamu punya banyak VLOOKUP di file lama, migrasi ke XLOOKUP itu enak karena:
* `XLOOKUP(lookup_value, lookup_array, return_array, if_not_found, match_mode, search_mode)`
* Contoh VLOOKUP:
```
=VLOOKUP(A2, $A$2:$D$100, 3, FALSE)
```
→ setara dengan:
```
=XLOOKUP(A2, $A$2:$A$100, $C$2:$C$100, "Tidak Ditemukan", 0)
```
Kelebihan: no need col_index, return_array explicit.
---
## 12. Perbandingan contoh nyata: ringkas & visual (quick cheat sheet)
* Lookup kiri? → **XLOOKUP / INDEX+MATCH** (YES) ; **LOOKUP** (NO / tricky)
* Default exact? → **XLOOKUP** bisa (default 0); **LOOKUP** cenderung approximate
* Nilai not found handling? → **XLOOKUP** punya param `if_not_found` ; **LOOKUP** butuh IFERROR
* Ambil banyak kolom sekaligus? → **XLOOKUP** bisa; **LOOKUP** nggak
* Last match (reverse)? → **XLOOKUP** `search_mode = -1` ; **LOOKUP** susah
---
## 13. Kesalahan umum & solusi cepat
* **Error #N/A**: artinya tidak ditemukan. Solusi: pakai `if_not_found` di XLOOKUP atau `IFERROR` di rumus lama.
* **Hasil salah dengan LOOKUP**: pastikan lookup_vector diurut ascending. Kalau nggak, pakai exact lookup (`XLOOKUP`/`INDEX+MATCH`).
* **Spasi/format masalah**: pakai `TRIM` / `VALUE` / `UPPER` untuk normalisasi.
* **Performa lambat**: batasi range, gunakan helper columns, atau Power Query.
---
## 14. Rekomendasi akhir (praktis buat remaja)
* Kalau kamu pakai **Excel Microsoft 365 / Excel terbaru** → langsung pakai **XLOOKUP** sebagai standar untuk semua kebutuhan lookup (vertical, horizontal, lookup kiri, multiple return, last match).
* Kalau kamu pakai **Google Sheets** atau **Excel lama** → pakai `INDEX + MATCH` untuk fleksibilitas; `LOOKUP` masih ok untuk kasus approximate di data yang terurut.
* Selalu **sanitasi input**: TRIM & UPPER supaya aturan matching jadi stabil.
* Pakai `if_not_found` (XLOOKUP) atau `IFERROR` supaya user-friendly.
---
## 15. Penutup — langkah praktis mulai hari ini
1. Buka file kerjaanmu, cari semua VLOOKUP/LOOKUP yang sulit dibaca.
2. Jika pakai Excel 365, coba ganti satu per satu ke XLOOKUP — lihat betapa lebih readable dan kuatnya.
3. Latihan: buat 3 sheet kecil (Products, Orders, Transactions) dan implementasikan contoh-contoh di artikel ini.
4. Kalau pake Google Sheets, latih INDEX+MATCH dan FILTER; itu powerful juga.
Sekarang kamu tahu kenapa **XLOOKUP** sering disebut lebih efektif daripada **LOOKUP**: lebih aman, fleksibel, dan bikin rumus jadi rapi.
Praktik terus sampai kamu bisa bikin dashboard otomatis tanpa harus scroll manual. Selamat ngoprek!
Gabung dalam percakapan