Menu

Rumus VLOOKUP Excel: Contoh dan Cara Mengatasi #N/A

=VLOOKUP(F2,A2:D6,3,FALSE) mencari F2 di kolom pertama A2:D6 dan mengembalikan nilai dari kolom ketiga di baris yang sama. Pencocokan persis dan perkiraan, cara mengatasi #N/A, beda sheet, dua kriteria.

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

=VLOOKUP(F2,A2:D6,3,FALSE) mencari nilai di F2 pada kolom pertama A2:D6 dan mengembalikan nilai dari kolom ketiga di baris yang sama. FALSE di akhir berarti "hanya pencocokan persis". Pilih produk lain di F2 dan harganya ikut berubah.

Harga sebuah produk
G2
ABCDEFG
1ProductCategoryPriceStockLook forPrice
2AppleFruit$1.2040Pear$1.50
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 untuk melihat tabel A2:D6 ditandai. Ubah 3 di rumusnya menjadi 2 dan G2 mengembalikan kategori, bukan harga, karena Category adalah kolom kedua tabel. Pencocokannya tidak membedakan huruf besar dan kecil: pear menemukan Pear.

Sintaks VLOOKUP

=VLOOKUP(lookup_value, table_array, col_index_num, [range_lookup])
ArgumenArtinyaDi contoh ini
lookup_valueNilai yang dicari.F2 (Pear)
table_arrayTabel tempat mencari. VLOOKUP hanya mencari di kolom pertama-nya.A2:D6
col_index_numKolom tabel yang dikembalikan, dihitung dari kolom pertama tabel (1).3 (Price)
range_lookupFALSE atau 0 untuk pencocokan persis. TRUE, 1 atau dikosongkan untuk pencocokan perkiraan.FALSE

Nomor kolomnya dihitung dari awal tabel, bukan dari kolom A di sheet. Di tabel yang dimulai dari kolom C, col_index_num 2 berarti kolom D. Angka yang lebih besar dari lebar tabel menghasilkan #REF!, dan 0 menghasilkan #VALUE!.

Di Excel yang memakai koma sebagai pemisah desimal, seperti Excel dengan pengaturan regional Indonesia, argumen dipisahkan dengan titik koma: =VLOOKUP(F2;A2:D6;3;FALSE).

Memilih kolom yang dikembalikan dengan MATCH

Angka 3 yang ditulis langsung akan rusak diam-diam saat seseorang menyisipkan kolom di dalam tabel: rumusnya tetap mengembalikan kolom ketiga, yang sekarang berisi data lain. Biarkan MATCH mencari nomor kolom dari judulnya. Di sini G1 adalah drop-down: pilih Stock atau Category dan G2 mengikutinya.

Nomor kolom dari judul kolom
G2
ABCDEFG
1ProductCategoryPriceStockLook forPrice
2AppleFruit$1.2040Carrot0.8
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.

MATCH(G1,A1:D1,0) mengembalikan posisi "Price" di baris judul, yaitu 3, dan VLOOKUP memakainya sebagai nomor kolom: 0,8 untuk Carrot. Ini adalah pencarian dua arah: baris dipilih berdasarkan produk, kolom dipilih berdasarkan judul. Ide yang sama yang ditulis dengan INDEX, bukan VLOOKUP, ada di halaman INDEX dan MATCH.

Pencocokan perkiraan: VLOOKUP dengan TRUE

Dengan TRUE sebagai argumen terakhir, VLOOKUP tidak mencari nilai yang sama. Fungsi ini mencari nilai terbesar yang kurang dari atau sama dengan nilai yang dicari. Itulah yang kamu butuhkan untuk rentang bertingkat: golongan pajak, nilai huruf, tarif pengiriman, tingkat komisi. Kolom pertamanya harus diurutkan dari yang terkecil sampai terbesar.

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

Angka 4.200 milik Ben tidak ada di kolom A. Nilai terbesar yang tidak melebihinya adalah 1.000, jadi ia mendapat 3%. Angka 5.000 milik Cara cocok persis dengan baris 5.000 dan mendapat 5%. Angka 12.500 milik Dev berada di atas tingkat terakhir dan mendapat persentase terakhir, 8%. Nilai di bawah tingkat pertama (di sini angka penjualan negatif) menghasilkan #N/A, itulah sebabnya tabelnya dimulai dari 0.

Tanda $ di $A$2:$B$5 menjaga tabelnya tetap di tempat saat F2 disalin ke bawah sampai F5. Tanpanya, F3 akan mencari di A3:B6 dan melewatkan tingkat pertama.

Menghilangkan argumen keempat sama dengan TRUE. Pada daftar produk yang tidak terurut, ini adalah bug yang diam-diam: Excel mencari seolah-olah daftarnya terurut dan bisa mengembalikan harga dari baris yang salah, atau #N/A untuk nilai yang sebenarnya ada. Saat kamu mencari nama, kode atau ID, selalu akhiri dengan FALSE.

Kenapa VLOOKUP menghasilkan #N/A

#N/A berarti "tidak ditemukan". Sheet di bawah ini menunjukkan tiga penyebab yang umum, dan kolom G mengulang setiap pencarian yang dibungkus dengan IFNA dan TRIM.

Tiga pencarian yang menghasilkan #N/A
F2
ABCDEFG
1ProductCategoryPriceStockLook forPriceFixed
2AppleFruit$1.2040Kiwi#N/ANot found
3PearFruit$1.5025Milk #N/A$1.10
4CarrotVegetable$0.8060Fruit#N/ANot found
5BreadBakery$2.4015
6MilkDairy$1.1030
#N/A Nilai yang kamu cari tidak ada di rentang pencarian.
  1. Nilainya tidak ada di tabel. Kiwi tidak ada di A2:A6. Itu memang "tidak ditemukan", dan IFNA(...,"Not found") mengubahnya menjadi teks yang mudah dibaca. Ubah E2 menjadi Apple dan kedua kolom menampilkan harganya.
  2. Spasi berlebih. E3 berisi "Milk " dengan spasi di belakang, jadi tidak sama dengan Milk. TRIM(E3) menghapusnya dan G3 menemukan harganya. Jika spasinya justru ada di tabel, bersihkan kolom A dengan TRIM sekali saja, bukan di setiap pencarian.
  3. Nilainya ada di kolom lain. Fruit memang ada, tetapi di kolom B. VLOOKUP hanya mencari di kolom pertama tabel, jadi E4 gagal di kedua kolom. Mulai tabelnya dari kolom yang dicari, atau pakai XLOOKUP, yang menerima kolom pencarian dan kolom hasil secara terpisah.

Pakai IFNA, bukan IFERROR, untuk membungkus pencarian. IFNA hanya menangkap #N/A, jadi #REF! karena nomor kolom yang salah tetap terlihat, bukan disembunyikan sebagai "Not found".

Dua penyebab lainnya:

  • Angka yang tersimpan sebagai teks. Jika kolom A berisi kode produk yang diketik sebagai teks (sering terjadi setelah impor, dengan segitiga hijau kecil di pojok) dan F2 berisi angka 101, =VLOOKUP(F2,A2:B6,2,FALSE) menghasilkan #N/A walaupun 101 ada di daftar. Ubah salah satu sisinya: =VLOOKUP(F2&"",A2:B6,2,FALSE) mencari teks "101", dan =VLOOKUP(VALUE(F2),A2:B6,2,FALSE) mencari angka jika F2 berupa teks.
  • Pencocokan perkiraan pada data yang tidak terurut, seperti dijelaskan di bagian sebelumnya.

VLOOKUP menghasilkan 0, bukan sel kosong

Jika sel yang dituju VLOOKUP kosong, Excel menampilkan 0, bukan sel kosong. Angka 0 di kolom Stock lalu terbaca sebagai "stok habis", padahal stoknya belum pernah diisi. Tambahkan &"" ke rumusnya, atau uji panjang hasilnya:

=VLOOKUP(F2,A2:D6,4,FALSE)&""
=IF(LEN(VLOOKUP(F2,A2:D6,4,FALSE))=0,"",VLOOKUP(F2,A2:D6,4,FALSE))

Cara pertama lebih pendek tetapi mengubah setiap angka yang dikembalikannya menjadi teks, jadi SUM berikutnya akan melewatinya. Cara kedua mempertahankan angka sebagai angka.

VLOOKUP dari sheet lain

Tulis nama sheet dan ! di depan tabelnya. Saat menyusun rumus di Excel, klik tab sheet lain lalu pilih range-nya: Excel menuliskan Prices!A2:B6 untukmu. Di sini tab Orders mencari harga di tab Prices.

Harga pesanan dari sheet Prices
D2
ABCDE
1OrderProductQtyPriceTotal
21001Pear3$1.50$4.50
31002Milk2$1.10$2.20
41003Apple5$1.20$6.00
51004Bread1$2.40$2.40
Klik sel untuk melihat rumusnya. Ubah angka atau rumus, dan lembar kerja langsung menghitung ulang.

Buka tab Prices dan ubah harga Apple: total pesanannya langsung diperbarui. Dua hal yang perlu diperhatikan:

  • Nama sheet yang mengandung spasi perlu tanda kutip tunggal: =VLOOKUP(B2,'Price list'!$A$2:$B$6,2,FALSE).
  • Tabel di workbook lain menambahkan nama file di dalam kurung siku, [Prices.xlsx]Prices!$A$2:$B$6. Jika file itu tertutup, Excel menampilkan path lengkapnya di rumus dan pencariannya tetap berjalan dari file yang tersimpan.

VLOOKUP dengan wildcard (pencocokan sebagian)

Dengan FALSE, nilai yang dicari boleh mengandung wildcard: * mewakili berapa pun jumlah karakter dan ? mewakili tepat satu karakter. "*"&E2&"*" menemukan produk pertama yang namanya mengandung teks di E2.

Cari produk dari sebagian namanya
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" cocok dengan Iced coffee dan Coffee beans; VLOOKUP mengembalikan yang pertama dari atas, 2,90.UbahE2menjadi‘bean‘untukmendapatkan2,90. Ubah E2 menjadi `bean` untuk mendapatkan 8,50, atau menjadi juice. Untuk mencari tanda bintang atau tanda tanya yang sebenarnya, taruh tilde di depannya: "~*".

VLOOKUP ke kiri

VLOOKUP tidak bisa mengembalikan kolom di sebelah kiri kolom yang dicarinya: col_index_num hanya menghitung ke kanan, dan angka negatif adalah error. Untuk menemukan produk dari harga tertentu, cari di kolom C dan kembalikan kolom A dengan XLOOKUP atau INDEX dan MATCH:

=XLOOKUP(2.4, C2:C6, A2:A6)              Excel 2021 and Microsoft 365
=INDEX(A2:A6, MATCH(2.4, C2:C6, 0))      every version

Keduanya mengembalikan Bread pada data di sheet pertama. XLOOKUP punya penjelasan lengkapnya.

Latihan: ongkos kirim berdasarkan berat

Tarif pengiriman
E2
ABCDE
1Weight from (kg)CostWeight (kg)Cost
20$4.507
32$6.00
45$9.50
510$14.00
620$22.00
Klik sel untuk melihat rumusnya. Ubah angka atau rumus, dan lembar kerja langsung menghitung ulang.

Giliranmu: Setiap ongkos berlaku mulai dari beratnya sampai berat berikutnya di daftar. Di E2, pakai VLOOKUP untuk mengembalikan ongkos kirim dari berat paket di D2.

VLOOKUP dengan dua kriteria

VLOOKUP hanya menerima satu nilai yang dicari. Untuk mencocokkan dua kolom, buat kolom bantu yang menggabungkan keduanya, taruh di posisi pertama tabel, lalu cari teks gabungan yang sama. Kolom A di bawah ini adalah =B2&"-"&C2 yang disalin ke bawah, jadi isinya Coffee-Small, Coffee-Large dan seterusnya.

Harga berdasarkan produk dan ukuran
G2
ABCDEFG
1KeyProductSizePriceProductSizePrice
2Coffee-SmallCoffeeSmall$2.50TeaLarge
3Coffee-LargeCoffeeLarge$3.50
4Tea-SmallTeaSmall$2.00
5Tea-LargeTeaLarge$3.00
6Juice-SmallJuiceSmall$3.00
Klik sel untuk melihat rumusnya. Ubah angka atau rumus, dan lembar kerja langsung menghitung ulang.

Giliranmu: Kolom A menggabungkan produk dan ukuran dengan tanda hubung. Di G2, kembalikan harga untuk produk di E2 dan ukuran di F2.

Pemisahnya penting: "Tea"&"Large" menghasilkan TeaLarge, yang tidak cocok dengan apa pun di kolom A. Di Excel 2021 dan Microsoft 365, kamu bisa melewatkan kolom bantu dengan =XLOOKUP(1,(B2:B6=E2)*(C2:C6=F2),D2:D6); pencarian dengan banyak kriteria menunjukkan cara itu dan versi INDEX/MATCH-nya.

Pertanyaan yang sering diajukan

Bagaimana cara memakai VLOOKUP di Excel?

Ketik =VLOOKUP( lalu berikan empat argumen: nilai yang dicari, tabelnya (kolom pertamanya harus berisi nilai itu), nomor kolom yang dikembalikan, dan FALSE untuk pencocokan persis. =VLOOKUP("Pear",A2:D6,3,FALSE) mencari Pear di kolom A dan mengembalikan nilai dari kolom C di baris itu.

Apa arti TRUE atau FALSE di akhir VLOOKUP?

FALSE (atau 0) meminta pencocokan persis dan menghasilkan #N/A jika nilainya tidak ada. TRUE (atau 1, atau argumennya dihilangkan) meminta pencocokan perkiraan: nilai terbesar yang kurang dari atau sama dengan nilai yang dicari, yang hanya bekerja jika kolom pertamanya diurutkan naik.

Kenapa VLOOKUP saya hasilnya #N/A?

Nilainya tidak ditemukan di kolom pertama tabel. Penyebab yang biasa adalah salah ketik, spasi berlebih ("Milk " tidak sama dengan "Milk"), angka yang tersimpan sebagai teks hanya di salah satu sisi, atau nilai yang berada di kolom lain. Bungkus rumusnya dengan IFNA untuk menampilkan teksmu sendiri: =IFNA(VLOOKUP(F2,A2:D6,3,FALSE),"Not found").

Apakah VLOOKUP bisa mencari ke kiri?

Tidak. VLOOKUP hanya mengembalikan kolom di sebelah kanan kolom pertama tabel. Pakai =XLOOKUP(F2,C2:C6,A2:A6) di Excel 2021 atau Microsoft 365, atau =INDEX(A2:A6,MATCH(F2,C2:C6,0)) di versi mana pun.

Bagaimana cara memakai VLOOKUP dari sheet lain?

Tulis nama sheet dan tanda seru di depan range-nya: =VLOOKUP(B2,Prices!$A$2:$B$6,2,FALSE). Jika nama sheet-nya mengandung spasi, apit dengan tanda kutip tunggal: 'Price list'!$A$2:$B$6.

Ilustrasi bahasa pemrograman di Coddy

Belajar coding dengan Coddy

Mulai