Menu

Rumus XLOOKUP Excel: Contoh dan Mode Pencocokan

=XLOOKUP(F2,A2:A6,C2:C6) mencari F2 di A2:A6 dan mengembalikan nilai di baris yang sama dari C2:C6. Teks jika tidak ditemukan, beberapa kolom sekaligus, pencarian ke kiri, kecocokan terakhir, pencocokan perkiraan dan wildcard.

Setiap lembar kerja di halaman ini interaktif: ubah angka atau rumus, dan hasilnya langsung dihitung ulang.

=XLOOKUP(F2,A2:A6,C2:C6) mencari nilai di F2 pada A2:A6 dan mengembalikan nilai dari baris yang sama di C2:C6. Pencocokannya persis sebagai default, kolom pencariannya bisa berada di mana saja, dan rumus ini butuh Excel 2021 atau Microsoft 365 (di Excel 2019 dan yang lebih lama pakai INDEX dan MATCH). Ketik produk lain di F2.

Harga sebuah produk
G2
ABCDEFG
1ProductCategoryPriceStockLook forPrice
2AppleFruit$1.2040Bread$2.40
3PearFruit$1.5025
4CarrotVegetable$0.8060
5BreadBakery$2.4015
6MilkDairy$1.1030
Klik sel untuk melihat rumusnya. Ubah angka atau rumus, dan lembar kerja langsung menghitung ulang.

Klik G2: range pencarian dan range kembali ditandai secara terpisah. Ubah C2:C6 menjadi B2:B6 dan G2 mengembalikan kategorinya. Tidak ada nomor kolom yang perlu dihitung, jadi menyisipkan kolom di antara A dan C tidak merusak rumusnya: Excel memindahkan kedua range.

Sintaks XLOOKUP

=XLOOKUP(lookup_value, lookup_array, return_array, [if_not_found], [match_mode], [search_mode])
ArgumenFungsinyaDefault
lookup_valueNilai yang dicari.wajib
lookup_arrayKolom (atau baris) tempat mencari.wajib
return_arrayKolom, baris atau blok tempat hasil diambil. Tingginya sama dengan lookup_array.wajib
if_not_foundYang ditampilkan jika tidak ada yang cocok.#N/A
match_mode0 persis, -1 persis atau lebih kecil berikutnya, 1 persis atau lebih besar berikutnya, 2 wildcard.0
search_mode1 dari pertama ke terakhir, -1 dari terakhir ke pertama, 2 dan -2 pencarian biner pada data terurut.1

Hanya tiga argumen pertama yang wajib. Untuk melewati sebuah argumen opsional dan mengisi argumen setelahnya, biarkan kosong di antara koma: =XLOOKUP(F2,A2:A6,C2:C6,,0,-1) mengisi search_mode dan membiarkan if_not_found memakai default-nya.

Mengembalikan beberapa kolom sekaligus

Berikan XLOOKUP range kembali yang lebarnya beberapa kolom dan seluruh barisnya akan dikembalikan. Hasilnya tumpah ke sel-sel di samping rumus.

Semua data untuk satu produk
B8
ABCD
1ProductCategoryPriceStock
2AppleFruit$1.2040
3PearFruit$1.5025
4CarrotVegetable$0.8060
5BreadBakery$2.4015
6MilkDairy$1.1030
7Look forCarrot
8ResultVegetable$0.8060
Klik sel untuk melihat rumusnya. Ubah angka atau rumus, dan lembar kerja langsung menghitung ulang.

Satu rumus di B8 mengisi B8:D8 dengan Vegetable, $0,80 dan 60. Ketik sesuatu di C8 dan B8 menampilkan #SPILL!, karena hasilnya tidak punya ruang; hapus isinya dan hasilnya kembali. Untuk mengembalikan kolom-kolom dalam urutan lain, bungkus range kembalinya dengan CHOOSECOLS: =XLOOKUP(B7,A2:A6,CHOOSECOLS(B2:D6,3,1)) memberi Stock, lalu Category.

XLOOKUP ke kiri, dan pesan jika tidak ada yang cocok

Kolom pencariannya tidak harus berada di depan. Di sini XLOOKUP mencari harga di kolom C dan mengembalikan nama produk dari kolom A, yang tidak bisa dilakukan VLOOKUP. Argumen keempat menentukan apa yang ditampilkan jika tidak ada produk dengan harga itu.

Produk mana yang harganya segini?
G2
ABCDEFG
1ProductCategoryPriceStockPriceProduct
2AppleFruit$1.2040$2.40Bread
3PearFruit$1.5025
4CarrotVegetable$0.8060
5BreadBakery$2.4015
6MilkDairy$1.1030
Klik sel untuk melihat rumusnya. Ubah angka atau rumus, dan lembar kerja langsung menghitung ulang.

$2,40 mengembalikan Bread. Ubah F2 menjadi 3 dan G2 menampilkan "No product", bukan #N/A. "" sebagai argumen keempat menampilkan sel yang terlihat kosong. if_not_found hanya menangani kasus "tidak ditemukan": range kembali dengan tinggi yang salah tetap menghasilkan #VALUE!, dan memang itulah yang perlu kamu lihat.

Menemukan kecocokan terakhir

XLOOKUP mengembalikan kecocokan pertama dari atas. Isi search_mode, argumen keenam, dengan -1 dan pencariannya berjalan dari bawah, jadi yang dikembalikan adalah kecocokan terakhir: pesanan terbaru, harga paling baru, status terakhir.

Pesanan pertama dan terakhir seorang pelanggan
G2
ABCDEFG
1DateCustomerAmountCustomerFirstLast
22026-03-02Ben120Ben12060
32026-03-05Ana80
42026-03-09Ben45
52026-03-12Cara200
62026-03-20Ben60
72026-03-24Ana95
Klik sel untuk melihat rumusnya. Ubah angka atau rumus, dan lembar kerja langsung menghitung ulang.

Pesanan pertama Ben bernilai 120 dan yang terakhir 60. Ubah E2 menjadi Ana: 80 dan 95. Cara ini mengandalkan baris-barisnya yang terurut menurut tanggal. Jika tidak, cari tanggal terbaru pelanggan itu: =XLOOKUP(1,(B2:B7=E2)*(A2:A7=MAXIFS(A2:A7,B2:B7,E2)),C2:C7).

Pencocokan perkiraan: lebih kecil atau lebih besar berikutnya

match_mode -1 mengembalikan kecocokan persis atau, jika tidak ada, nilai lebih kecil berikutnya. Itulah aturan untuk rentang bertingkat: tingkat komisi, golongan pajak, nilai huruf. Berbeda dengan VLOOKUP dengan TRUE, tabelnya tidak harus diurutkan. Rentang di bawah ini sengaja tidak diurutkan.

Persentase komisi berdasarkan penjualan
F2
ABCDEF
1Sales fromRateRepSalesRate
250005%Ana7500%
300%Ben4,2003%
4100008%Cara5,0005%
510003%Dev12,5008%
Klik sel untuk melihat rumusnya. Ubah angka atau rumus, dan lembar kerja langsung menghitung ulang.

Angka 4.200 milik Ben berada di antara 1.000 dan 5.000, jadi ia mendapat 3% dari tingkat 1.000. Angka 5.000 milik Cara cocok persis, 5%. match_mode 1 bekerja ke arah sebaliknya, persis atau lebih besar berikutnya, yang menjawab "kotak terkecil yang muat" atau "jadwal pengiriman berikutnya": =XLOOKUP(18,{5;12;25;50},{"S";"M";"L";"XL"},,1) mengembalikan L.

XLOOKUP dengan wildcard

match_mode 2 mengubah * (karakter apa pun) dan ? (satu karakter) menjadi wildcard. Tanpa itu, XLOOKUP mencari karakternya apa adanya, kebalikan dari VLOOKUP (yang pencocokan persisnya menerima wildcard), dan itulah alasan yang biasa kenapa XLOOKUP dengan wildcard menghasilkan #N/A atau teks if_not_found-nya:

=XLOOKUP("*coffee*",A2:A6,C2:C6,"None")      None: no product is named *coffee*
=XLOOKUP("*coffee*",A2:A6,C2:C6,"None",2)    2.9, the price of Iced coffee
Produk pertama yang namanya mengandung teks tertentu
F2
ABCDEF
1ProductCategoryPriceContainsPrice
2Green teaDrinks$3.20coffee$2.90
3Iced coffeeDrinks$2.90
4Coffee beansPantry$8.50
5Black teaDrinks$2.70
6Orange juiceDrinks$3.40
Klik sel untuk melihat rumusnya. Ubah angka atau rumus, dan lembar kerja langsung menghitung ulang.

"coffee" lebih dulu menemukan Iced coffee, 2,90.Tambahkan‘−1‘sebagaiargumenkeenamdanyangditemukanadalahCoffeebeans,2,90. Tambahkan `-1` sebagai argumen keenam dan yang ditemukan adalah Coffee beans, 8,50. Seperti semua pencarian di Excel, pencocokannya tidak membedakan huruf besar dan kecil. Untuk mencari tanda bintang atau tanda tanya yang sebenarnya dalam match_mode 2, taruh tilde di depannya: "~*".

XLOOKUP dua arah

XLOOKUP yang mengembalikan satu baris utuh bisa menjadi range kembali bagi XLOOKUP kedua. XLOOKUP bagian dalam memilih baris berdasarkan wilayah, XLOOKUP bagian luar memilih kolom bulan dari baris itu.

Penjualan berdasarkan wilayah dan bulan
B8
ABCD
1RegionJanFebMar
2North4,2003,9004,800
3South3,1003,6003,300
4East5,2004,7005,600
5West2,8003,0003,400
6RegionSouth
7MonthFeb
8Sales3,600
Klik sel untuk melihat rumusnya. Ubah angka atau rumus, dan lembar kerja langsung menghitung ulang.

XLOOKUP(B6,A2:A5,B2:D5) mengembalikan baris South, yaitu 3100, 3600 dan 3300. XLOOKUP bagian luar menemukan Feb di B1:D1 dan mengambil nilai yang sesuai dari baris itu: 3.600. Pilih wilayah dan bulan lain di B6 dan B7. Versi INDEX dan MATCH dari pencarian yang sama ada di halaman INDEX dan MATCH.

XLOOKUP di Excel versi lama dan Google Sheets

XLOOKUP ada di Excel 2021, Excel 2024, Microsoft 365, Excel for the web dan aplikasi mobile-nya. Jika kamu membuka file yang memakainya di Excel 2019 atau yang lebih lama, rumus-rumusnya menampilkan #NAME? begitu dihitung ulang. Jika file-nya harus bisa dipakai di mana saja, tulis pencariannya dengan INDEX dan MATCH, yang dipahami semua versi:

=XLOOKUP(F2, A2:A6, C2:C6, "Not found")
=IFNA(INDEX(C2:C6, MATCH(F2, A2:A6, 0)), "Not found")

Google Sheets sudah punya XLOOKUP sejak 2022, dengan argumen yang sama. Untuk perbandingan perbedaannya secara berdampingan, lihat VLOOKUP vs XLOOKUP. Untuk mencocokkan dua kolom sekaligus (produk dan ukuran, nama dan tanggal), pola =XLOOKUP(1,(B2:B6=E2)*(C2:C6=F2),D2:D6) dijelaskan di halaman pencarian dengan banyak kriteria.

Latihan: sebuah harga, atau "Not found"

Daftar harga
G2
ABCDEFG
1ProductCategoryPriceStockLook forPrice
2AppleFruit$1.2040Kiwi
3PearFruit$1.5025
4CarrotVegetable$0.8060
5BreadBakery$2.4015
6MilkDairy$1.1030
Klik sel untuk melihat rumusnya. Ubah angka atau rumus, dan lembar kerja langsung menghitung ulang.

Giliranmu: Di G2, kembalikan harga produk di F2, atau teks Not found jika produknya tidak ada di daftar.

Latihan: diskon berdasarkan nilai pesanan

Tingkat diskon
E2
ABCDE
1Order fromDiscountOrderDiscount
2$00%$320
3$1005%
4$25010%
5$50015%
Klik sel untuk melihat rumusnya. Ubah angka atau rumus, dan lembar kerja langsung menghitung ulang.

Giliranmu: Setiap diskon berlaku mulai dari nilai pesanannya ke atas. Di E2, pakai XLOOKUP untuk mengembalikan diskon bagi nilai pesanan di D2.

Pertanyaan yang sering diajukan

Bagaimana cara memakai XLOOKUP di Excel?

Berikan tiga argumen: yang dicari, kolom tempat mencari, dan kolom yang dikembalikan. =XLOOKUP("Pear",A2:A6,C2:C6) mencari Pear di A2:A6 dan mengembalikan nilai dari baris yang sama di C2:C6. Pencocokannya persis kecuali kamu menentukan lain.

Versi Excel mana yang punya XLOOKUP?

Excel 2021, Excel 2024, Microsoft 365 dan Excel for the web. Di Excel 2019 dan yang lebih lama, rumusnya menampilkan #NAME?; di sana pakai =INDEX(C2:C6,MATCH(F2,A2:A6,0)). Google Sheets juga punya XLOOKUP.

Bagaimana cara membuat XLOOKUP menampilkan sel kosong atau teks, bukan #N/A?

Pakai argumen keempat, if_not_found: =XLOOKUP(F2,A2:A6,C2:C6,"Not found"), atau "" untuk sel yang terlihat kosong. Argumen ini hanya menggantikan kasus tidak ditemukan; error lainnya tetap tampil.

Bagaimana cara menemukan kecocokan terakhir dengan XLOOKUP?

Isi argumen keenam, search_mode, dengan -1 agar pencariannya berjalan dari bawah ke atas: =XLOOKUP("Ben",B2:B7,C2:C7,,0,-1) mengembalikan transaksi terakhir Ben, bukan yang pertama.

Apakah XLOOKUP bisa mengembalikan lebih dari satu kolom?

Bisa. Berikan range kembali yang lebarnya beberapa kolom, seperti =XLOOKUP(F2,A2:A6,B2:D6), dan hasilnya tumpah (spill) ke sel-sel di sampingnya. Sel tempat hasilnya tumpah harus kosong, kalau tidak Excel menampilkan #SPILL!.

Ilustrasi bahasa pemrograman di Coddy

Belajar coding dengan Coddy

Mulai