Menu

Lookup 2 Kriteria atau Lebih di Excel: XLOOKUP, INDEX MATCH

=XLOOKUP(1,(A2:A7=E2)*(B2:B7=F2),C2:C7) mengembalikan nilai dari baris tempat kolom A cocok dengan E2 dan kolom B cocok dengan F2. Ada juga versi INDEX MATCH, kolom bantu untuk VLOOKUP, dan FILTER untuk semua hasil yang cocok.

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

=XLOOKUP(1,(A2:A7=E2)*(B2:B7=F2),C2:C7) mengembalikan harga dari baris tempat produknya E2 dan ukurannya F2. Setiap perbandingan memeriksa semua baris, perkaliannya hanya bernilai 1 kalau keduanya benar, dan XLOOKUP mencari angka 1 itu. Rumus ini butuh Excel 2021 atau Microsoft 365; versi INDEX MATCH di bawah bekerja di semua versi.

Harga berdasarkan produk dan ukuran
G2
ABCDEFG
1ProductSizePriceProductSizePrice
2CoffeeSmall$2.50TeaLarge$3.00
3CoffeeLarge$3.50
4TeaSmall$2.00
5TeaLarge$3.00
6JuiceSmall$3.00
7JuiceLarge$4.00
Klik sel untuk melihat rumusnya. Ubah angka atau rumus, dan lembar kerja langsung menghitung ulang.

Tea dan Large bertemu di baris 5, jadi G2 mengembalikan 3.00.PilihJuicedanSmall:hasilnya3.00. Pilih Juice dan Small: hasilnya 3.00 lagi, dari baris yang lain. Tambahkan argumen keempat untuk kasus ketika tidak ada baris yang cocok dengan keduanya: =XLOOKUP(1,(A2:A7=E2)*(B2:B7=F2),C2:C7,"No such item").

Cara kerja kondisi yang dikalikan

A2:A7=E2 membandingkan setiap produk dengan E2 dan mengembalikan enam nilai TRUE atau FALSE. Mengalikan dua daftar seperti itu mengubah TRUE menjadi 1 dan FALSE menjadi 0, dan sebuah baris hanya bernilai 1 kalau bernilai 1 di kedua daftar. Kolom D menampilkan daftar itu, yang spill dari satu rumus.

Array yang dicari XLOOKUP
D2
ABCDEFG
1ProductSizePriceBoth matchProductSize
2CoffeeSmall$2.500TeaLarge
3CoffeeLarge$3.500
4TeaSmall$2.000
5TeaLarge$3.001
6JuiceSmall$3.000
7JuiceLarge$4.000
Klik sel untuk melihat rumusnya. Ubah angka atau rumus, dan lembar kerja langsung menghitung ulang.

Hanya D5 yang bernilai 1. Ubah F2 atau G2, maka angka 1 itu berpindah. Setiap kriteria tambahan cukup satu *(range=value) lagi, dan kondisinya tidak harus berupa kesamaan: *(C2:C7<3) menambahkan syarat "harga di bawah 3". Setiap rentang harus mencakup baris yang sama (A2:A7, B2:B7, C2:C7): kalau rentang hasilnya berbeda ukuran dengan kondisinya, XLOOKUP mengembalikan #VALUE!.

INDEX MATCH dengan banyak kriteria

Untuk Excel 2019 dan versi lebih lama, MATCH bisa mencari angka 1 di array yang sama dan INDEX mengembalikan harga dari posisi tersebut.

Dua kriteria dengan INDEX dan MATCH
G2
ABCDEFG
1ProductSizePriceProductSizePrice
2CoffeeSmall$2.50CoffeeLarge$3.50
3CoffeeLarge$3.50
4TeaSmall$2.00
5TeaLarge$3.00
6JuiceSmall$3.00
7JuiceLarge$4.00
Klik sel untuk melihat rumusnya. Ubah angka atau rumus, dan lembar kerja langsung menghitung ulang.

Coffee dan Large ada di posisi 2 dalam array, dan INDEX mengembalikan $3.50. Di Excel 2019 dan versi lebih lama, ini adalah rumus array: tekan Ctrl+Shift+Enter (Cmd+Shift+Enter di Mac), bukan Enter, dan Excel menampilkannya di dalam kurung kurawal. Menekan Enter biasa di sana umumnya menghasilkan #N/A atau #VALUE!. Di Excel 365, Enter saja sudah cukup. Bentuk dengan satu kriteria ada di halaman INDEX dan MATCH.

Gabungkan kriteria menjadi satu kunci

Cara lainnya adalah mengubah dua kriteria menjadi satu dengan menggabungkannya. VLOOKUP butuh nilai gabungan itu di kolom bantu di awal tabel (halaman VLOOKUP menunjukkan versi tersebut). XLOOKUP bisa menggabungkan rentangnya di dalam rumus, jadi tidak perlu kolom bantu.

Gabungkan produk dan ukuran menjadi satu kunci
G2
ABCDEFG
1ProductSizePriceProductSizePrice
2CoffeeSmall$2.50JuiceLarge$4.00
3CoffeeLarge$3.50
4TeaSmall$2.00
5TeaLarge$3.00
6JuiceSmall$3.00
7JuiceLarge$4.00
Klik sel untuk melihat rumusnya. Ubah angka atau rumus, dan lembar kerja langsung menghitung ulang.

A2:A7&"|"&B2:B7 membuat enam kunci seperti Juice|Large, dan XLOOKUP menemukan Juice|Large di antaranya: $4.00. Taruh pemisah di antara bagian-bagiannya. Tanpa pemisah, "AB" dan "C" menjadi "ABC" yang sama dengan gabungan "A" dan "BC", dan lookup bisa mengembalikan baris yang salah.

Kalau nilai yang kamu cari berupa angka dan setiap kombinasi hanya muncul sekali, SUMIFS memberi jawaban yang sama tanpa array sama sekali: =SUMIFS(C2:C7,A2:A7,E2,B2:B7,F2). Rumus ini mengembalikan 0, bukan error, kalau tidak ada yang cocok, dan itu bisa menyembunyikan salah ketik.

Kembalikan semua hasil yang cocok dengan FILTER

XLOOKUP dan INDEX MATCH mengembalikan baris pertama yang cocok. Kalau beberapa baris cocok dan kamu ingin semuanya, pakai FILTER dengan kondisi yang sama.

Semua pesanan Phone di North
F2
ABCDEFG
1RegionProductQuarterSalesMatches
2NorthLaptopQ1120Q1210
3NorthPhoneQ1210Q2225
4SouthLaptopQ195Q3240
5NorthPhoneQ2225
6SouthPhoneQ2180
7NorthLaptopQ2135
8NorthPhoneQ3240
Klik sel untuk melihat rumusnya. Ubah angka atau rumus, dan lembar kerja langsung menghitung ulang.

Tiga baris berisi North dan Phone, jadi F2 menampilkan kuartal dan penjualannya dengan spill ke F2:G4. Ubah A3 menjadi South, maka daftarnya berkurang menjadi dua. Kalau tidak ada baris yang cocok, FILTER mengembalikan #CALC!; argumen ketiga seperti "None" menampilkan teks sebagai gantinya. Pilihan lainnya ada di halaman FILTER.

Latihan: tiga kriteria

Penjualan berdasarkan wilayah, produk dan kuartal
G4
ABCDEFG
1RegionProductQuarterSalesRegionSouth
2NorthLaptopQ1120ProductLaptop
3NorthLaptopQ2135QuarterQ2
4NorthPhoneQ1210Sales
5SouthLaptopQ195
6SouthPhoneQ2180
7SouthLaptopQ2110
8NorthPhoneQ2225
Klik sel untuk melihat rumusnya. Ubah angka atau rumus, dan lembar kerja langsung menghitung ulang.

Giliranmu: Kembalikan di G4 penjualan untuk wilayah di G1, produk di G2 dan kuartal di G3.

Pertanyaan yang sering diajukan

Bagaimana cara memakai XLOOKUP dengan banyak kriteria?

Kalikan satu perbandingan untuk setiap kriteria lalu cari angka 1: =XLOOKUP(1,(A2:A7=E2)*(B2:B7=F2),C2:C7). Setiap perbandingan memberi TRUE atau FALSE per baris, hasil perkaliannya hanya 1 kalau semuanya TRUE, dan XLOOKUP mengembalikan baris pertama yang seperti itu.

Bagaimana cara INDEX MATCH dengan dua kriteria?

Pakai kondisi yang dikalikan tadi di dalam MATCH: =INDEX(C2:C7,MATCH(1,(A2:A7=E2)*(B2:B7=F2),0)). Di Excel 2019 dan versi lebih lama, konfirmasi dengan Ctrl+Shift+Enter (Cmd+Shift+Enter di Mac).

Apakah VLOOKUP bisa memakai dua kriteria?

Tidak secara langsung. Tambahkan kolom bantu di awal tabel yang menggabungkan kedua nilai, misalnya =A2&"|"&B2, lalu cari nilai gabungannya: =VLOOKUP(E2&"|"&F2,helper_table,col,FALSE).

Apakah SUMIFS bisa menggantikan lookup dengan dua kriteria?

Bisa, kalau nilainya berupa angka dan setiap kombinasi hanya muncul sekali: =SUMIFS(C2:C7,A2:A7,E2,B2:B7,F2). Rumus ini mengembalikan 0, bukan #N/A, kalau tidak ada baris yang cocok, dan menjumlahkan nilainya kalau sebuah kombinasi muncul dua kali.

Bagaimana cara lookup dengan kriteria OR?

Jumlahkan kondisinya, jangan dikalikan: (A2:A7="Tea")+(A2:A7="Juice") bernilai 1 atau lebih kalau salah satunya benar. Cari nilai yang lebih besar dari 0, misalnya dengan =XLOOKUP(TRUE,((A2:A7="Tea")+(A2:A7="Juice"))>0,C2:C7).

Ilustrasi bahasa pemrograman di Coddy

Belajar coding dengan Coddy

Mulai