VLOOKUP lanjutan di Excel: banyak, ganda, bersarang

  • Bagikan Ini
Michael Brown

Contoh-contoh ini akan mengajari Anda cara Vlookup beberapa kriteria, mengembalikan contoh tertentu atau semua kecocokan, melakukan Vlookup dinamis di beberapa lembar, dan banyak lagi.

Ini adalah bagian kedua dari seri yang akan membantu Anda memanfaatkan kekuatan Excel VLOOKUP. Contoh-contohnya menyiratkan bahwa Anda tahu cara kerja fungsi ini. Jika tidak, masuk akal untuk memulai dengan penggunaan dasar VLOOKUP di Excel.

Sebelum melangkah lebih jauh, izinkan saya mengingatkan Anda secara singkat tentang sintaksisnya:

VLOOKUP(lookup_value, table_array, col_index_num, [range_lookup])

Sekarang setelah semua orang berada di halaman yang sama, mari kita lihat lebih dekat contoh rumus VLOOKUP tingkat lanjut:

    Cara Vlookup beberapa kriteria

    Fungsi Excel VLOOKUP sangat membantu dalam hal pencarian di seluruh database untuk nilai tertentu. Namun, fungsi ini tidak memiliki fitur penting - sintaksnya hanya mengizinkan satu nilai pencarian. Tetapi bagaimana jika Anda ingin mencari dengan beberapa kondisi? Ada beberapa solusi berbeda yang bisa Anda pilih.

    Formula 1. VLOOKUP dengan dua kriteria

    Misalkan Anda memiliki daftar pesanan dan ingin menemukan kuantitas berdasarkan 2 kriteria, Nama pelanggan dan Produk Faktor yang menyulitkan adalah, bahwa setiap pelanggan memesan beberapa produk, seperti ditunjukkan dalam tabel di bawah ini:

    Rumus VLOOKUP biasa tidak akan berfungsi dalam situasi ini karena mengembalikan kecocokan yang ditemukan pertama kali berdasarkan nilai pencarian tunggal yang Anda tentukan.

    Untuk mengatasi hal ini, Anda bisa menambahkan kolom pembantu dan menggabungkan nilai dari dua kolom lookup ( Pelanggan dan Produk ) di sana. Penting bahwa kolom pembantu haruslah kolom paling kiri kolom dalam array tabel karena di situlah Excel VLOOKUP selalu mencari nilai pencarian.

    Jadi, tambahkan kolom di sebelah kiri tabelmu dan salin rumus di bawah ini di kolom tersebut. Ini akan mengisi kolom helper dengan nilai dari kolom B dan C (karakter spasi digabungkan di antaranya agar lebih mudah dibaca):

    =B2&" "&C2

    Dan kemudian, gunakan rumus VLOOKUP standar dan tempatkan kedua kriteria di dalam lookup_value argumen, dipisahkan dengan spasi:

    =VLOOKUP("Jeremy Sweets", A2:D11, 4, FALSE)

    Atau, masukkan kriteria dalam sel terpisah (G1 dan G2 dalam kasus kita) dan gabungkan sel tersebut:

    =VLOOKUP(G1&" "&G2, A2:D11, 4, FALSE)

    Karena kita ingin mengembalikan nilai dari kolom D, yang keempat dalam larik tabel, kita menggunakan 4 untuk col_index_num . range_lookup argumen disetel ke FALSE ke Vlookup pencocokan yang tepat. Tangkapan layar di bawah ini menunjukkan hasilnya:

    Jika tabel pencarian Anda berada di lembar lain , sertakan nama sheet dalam rumus VLOOKUP Anda. Misalnya:

    =VLOOKUP(G1&" "&G2, Pesanan!A2:D11, 4, FALSE)

    Alternatifnya, buatlah kisaran bernama untuk tabel pencarian (katakanlah, Pesanan ) untuk membuat rumus lebih mudah dibaca:

    =VLOOKUP(G1&" "&G2, Pesanan, 4, FALSE)

    Untuk informasi lebih lanjut, silakan lihat Cara Vlookup dari lembar lain di Excel.

    Catatan. Agar rumus berfungsi dengan benar, nilai dalam kolom pembantu harus digabungkan dengan cara yang persis sama seperti dalam rumus lookup_value Sebagai contoh, kita menggunakan karakter spasi untuk memisahkan kriteria dalam kolom pembantu (B2&" "&C2) dan formula VLOOKUP (G1&" "&G2).

    Formula 2. Excel VLOOKUP dengan beberapa kondisi

    Secara teori, Anda dapat menggunakan pendekatan di atas untuk Vlookup lebih dari dua kriteria. Namun, ada beberapa peringatan. Pertama, nilai pencarian dibatasi hingga 255 karakter, dan kedua, desain lembar kerja mungkin tidak memungkinkan penambahan kolom pembantu.

    Untungnya, Microsoft Excel sering menyediakan lebih dari satu cara untuk melakukan hal yang sama. Untuk Vlookup beberapa kriteria, Anda dapat menggunakan kombinasi INDEX MATCH atau fungsi XLOOKUP yang baru-baru ini diperkenalkan di Office 365.

    Contohnya, untuk mencari berdasarkan 3 nilai yang berbeda ( Tanggal , Nama pelanggan dan Produk ), gunakan salah satu rumus berikut ini:

    =INDEX(D2:D11, MATCH(1, (G1=A2:A11) * (G2=B2:B11) * (G3=C2:C11), 0))

    =XLOOKUP(1, (G1=A2:A11) * (G2=B2:B11) * (G3=C2:C11), D2:D11)

    Di mana:

    • G1 adalah kriteria 1 (tanggal)
    • G2 adalah kriteria 2 (nama pelanggan)
    • G3 adalah kriteria 3 (produk)
    • A2:A11 adalah rentang pencarian 1 (tanggal)
    • B2:B11 adalah rentang pencarian 2 (nama pelanggan)
    • C2:C11 adalah rentang pencarian 3 (produk)
    • D2:D11 adalah rentang pengembalian (kuantitas)

    Catatan. Di semua versi kecuali Excel 365, INDEX MATCH harus dimasukkan sebagai rumus array CSE dengan menekan Ctrl + Shift + Enter. Di Excel 365 yang mendukung array dinamis, ini juga berfungsi sebagai rumus biasa.

    Untuk penjelasan rinci mengenai rumus-rumus, silakan lihat:

    • XLOOKUP dengan beberapa kriteria
    • Rumus INDEX MATCH dengan beberapa kriteria

    Cara menggunakan VLOOKUP untuk mendapatkan kecocokan ke-2, ke-3 atau ke-n

    Seperti yang sudah Anda ketahui, Excel VLOOKUP hanya dapat mengambil satu nilai yang cocok, lebih tepatnya, mengembalikan kecocokan yang pertama kali ditemukan. Tetapi bagaimana jika ada beberapa kecocokan dalam array pencarian Anda dan Anda ingin mendapatkan contoh ke-2 atau ke-3? Tugasnya terdengar cukup rumit, tetapi solusinya memang ada!

    Rumus 1. Vlookup Contoh ke-N

    Misalkan Anda memiliki nama pelanggan dalam satu kolom, produk yang mereka beli di kolom lain, dan Anda ingin menemukan produk ke-2 atau ke-3 yang dibeli oleh pelanggan tertentu.

    Cara paling sederhana adalah dengan menambahkan kolom pembantu di sebelah kiri tabel seperti yang kita lakukan pada contoh pertama. Tapi kali ini, kita akan mengisinya dengan nama pelanggan dan nomor kejadian seperti " John Doe1 ", " John Doe2 ", dll.

    Untuk mendapatkan kemunculannya, gunakan fungsi COUNTIF dengan referensi rentang campuran (referensi pertama absolut dan yang kedua relatif seperti $ B $ 2: B2). Karena referensi relatif berubah berdasarkan posisi sel tempat rumus disalin, di baris 3 akan menjadi $ B $ 2: B3, di baris 4 - $ B $ 2: B4, dan seterusnya.

    Digabungkan dengan nama pelanggan (B2), rumusnya mengambil bentuk ini:

    =B2&COUNTIF($B$2:B2, B2)

    Rumus di atas masuk ke A2, lalu Anda menyalinnya ke sel sebanyak yang diperlukan.

    Setelah itu, masukkan nama target dan nomor kejadian di sel terpisah (F1 dan F2), dan gunakan rumus di bawah ini untuk Vlookup kejadian tertentu:

    =VLOOKUP(F1&F2, A2:C11, 3, FALSE)

    Formula 2. Vlookup kejadian kedua

    Jika Anda mencari contoh ke-2 dari nilai pencarian, maka Anda dapat melakukannya tanpa kolom pembantu. Sebaliknya, buat larik tabel secara dinamis dengan menggunakan fungsi INDIRECT bersama dengan MATCH:

    =VLOOKUP(E1, INDIRECT("A"&(MATCH(E1, A2:A11, 0)+2)&":B11"), 2, FALSE)

    Di mana:

    • E1 adalah nilai pencarian
    • A2:A11 adalah kisaran pencarian
    • B11 adalah sel terakhir (kanan bawah) dari tabel pencarian

    Harap dicatat bahwa rumus di atas ditulis untuk kasus tertentu di mana sel data dalam tabel pencarian dimulai di baris 2. Jika tabel Anda berada di suatu tempat di tengah-tengah sheet, gunakan rumus universal ini, di mana A1 adalah sel kiri atas dari tabel pencarian yang berisi tajuk kolom:

    =VLOOKUP(E1, INDIRECT("A"&(MATCH(E1, A2:A11, 0)+1+ROW(A1))&":B11"), 2, FALSE)

    Bagaimana formula ini bekerja

    Berikut ini adalah bagian kunci dari rumus yang menciptakan rentang vlookup dinamis :

    INDIRECT("A"&(MATCH(E1, A2:A11, 0)+2)&":B11")

    Fungsi MATCH yang dikonfigurasi untuk pencocokan tepat (0 di argumen terakhir) membandingkan nama target (E1) dengan daftar nama (A2: A11) dan mengembalikan posisi kecocokan yang ditemukan pertama kali, yaitu 3 dalam kasus kami. Nomor ini akan digunakan sebagai koordinat baris awal untuk rentang vlookup, jadi kami menambahkan 2 ke dalamnya (+1 untuk mengecualikan contoh pertama dan +1 untuk mengecualikan baris 1 dengan header kolom).Alternatifnya, Anda bisa menggunakan 1+ROW(A1) untuk menghitung penyesuaian yang diperlukan secara otomatis berdasarkan posisi baris header (A1 dalam kasus kita).

    Sebagai hasilnya, kita mendapatkan string teks berikut, yang INDIRECT ubah menjadi referensi rentang:

    INDIRECT("A"&5&":B11") -> A5:B11

    Kisaran ini menuju ke table_array argumen VLOOKUP memaksanya untuk mulai mencari di baris 5, meninggalkan contoh pertama dari nilai pencarian:

    VLOOKUP(E1, A5:B11, 2, FALSE)

    Cara Vlookup dan mengembalikan beberapa nilai di Excel

    Fungsi Excel VLOOKUP dirancang untuk mengembalikan hanya satu kecocokan. Apakah ada cara untuk Vlookup beberapa contoh? Ya, ada, meskipun tidak mudah. Ini membutuhkan kombinasi penggunaan beberapa fungsi seperti INDEX, SMALL dan ROW adalah rumus array.

    Misalnya, di bawah ini dapat menemukan semua kemunculan nilai pencarian F2 dalam rentang pencarian B2: B16 dan mengembalikan beberapa kecocokan dari kolom C:

    {=IFERROR(INDEX($C$2:$C$11, SMALL(IF($F$1=$B$2:$B$11, ROW($C$2:$C$11)-1,""), ROW()-1)),"")}

    Ada 2 cara untuk memasukkan rumus di lembar kerja Anda:

    1. Ketik rumus di sel pertama, tekan Ctrl + Shift + Enter , lalu seret ke beberapa sel lagi.
    2. Pilih beberapa sel yang berdekatan dalam satu kolom (F1: F11 pada gambar di bawah), ketikkan rumus dan tekan Ctrl + Shift + Enter untuk menyelesaikannya.

    Apa pun itu, jumlah sel tempat Anda memasukkan rumus harus sama atau lebih besar dari jumlah maksimum kemungkinan kecocokan.

    Untuk penjelasan rinci tentang logika rumus dan lebih banyak contoh, silakan lihat Cara VLOOKUP beberapa nilai di Excel.

    Cara Vlookup dalam baris dan kolom (pencarian dua arah)

    Pencarian dua arah (alias pencarian matriks atau Pencarian 2-dimensi ) adalah kata mewah untuk mencari nilai di persimpangan baris dan kolom tertentu. Ada beberapa cara berbeda untuk melakukan pencarian dua dimensi di Excel, tetapi karena fokus tutorial ini adalah pada fungsi VLOOKUP, kami secara alami akan menggunakannya.

    Untuk contoh ini, kita akan mengambil tabel di bawah ini dengan penjualan bulanan dan mengerjakan rumus VLOOKUP untuk mengambil angka penjualan untuk item tertentu pada bulan tertentu.

    Dengan nama item di A2:A9, nama bulan di B1:F1, item target di I1 dan bulan target di I2, rumusnya adalah sebagai berikut:

    =VLOOKUP(I1, A2:F9, MATCH(I2, A1:F1, 0), FALSE)

    Bagaimana formula ini bekerja

    Inti dari formula ini adalah fungsi VLOOKUP standar yang mencari kecocokan yang tepat dengan nilai pencarian di I1. Tetapi karena kita tidak tahu di kolom mana tepatnya penjualan untuk bulan tertentu, kita tidak bisa memberikan nomor kolom secara langsung ke fungsi col_index_num Untuk menemukan kolom itu, kita menggunakan fungsi MATCH berikut:

    COCOKKAN(I2, A1:F1, 0)

    Diterjemahkan ke dalam bahasa Inggris, rumusnya mengatakan: cari nilai I2 di A1:F1 dan kembalikan posisi relatifnya dalam larik. Dengan memberikan 0 ke argumen ke-3, Anda menginstruksikan MATCH untuk menemukan nilai yang persis sama dengan nilai pencarian (ini seperti menggunakan FALSE untuk range_lookup argumen dari VLOOKUP).

    Sejak Mar berada di kolom ke-4 dalam larik pencarian, fungsi MATCH mengembalikan 4, yang langsung menuju ke col_index_num argumen dari VLOOKUP:

    VLOOKUP(I1, A2:F9, 4, FALSE)

    Harap perhatikan bahwa meskipun nama bulan dimulai di kolom B, kita menggunakan A1:I1 untuk larik pencarian. Hal ini dilakukan agar angka yang dikembalikan oleh MATCH sesuai dengan posisi kolom dalam table_array dari VLOOKUP.

    Untuk mempelajari lebih banyak cara untuk melakukan pencarian matriks di Excel, silakan lihat INDEX MATCH MATCH dan rumus lain untuk pencarian 2 dimensi.

    Bagaimana melakukan beberapa Vlookup di Excel (Vlookup bersarang)

    Terkadang mungkin terjadi bahwa tabel utama dan tabel pencarian Anda tidak memiliki satu kolom pun yang sama, yang mencegah Anda melakukan Vlookup di antara dua tabel. Namun, ada tabel lain, yang tidak berisi informasi yang Anda cari tetapi memiliki satu kolom yang sama dengan tabel utama dan kolom umum lainnya dengan tabel pencarian.

    Pada gambar di bawah ini mengilustrasikan situasinya:

    Tujuannya adalah untuk menyalin harga ke tabel utama berdasarkan ID Barang Masalahnya adalah bahwa tabel yang berisi harga-harga tidak memiliki ID Barang , artinya kita harus melakukan dua Vlookup dalam satu rumus.

    Demi kenyamanan, mari kita buat beberapa named range terlebih dulu:

    • Tabel Lookup 1 dinamai Produk (D3:E10)
    • Tabel Lookup 2 diberi nama Harga ( G3:H10 )

    Tabel-tabel bisa berada dalam lembar kerja yang sama atau berbeda.

    Dan sekarang, kita akan melakukan apa yang disebut Vlookup ganda alias Vlookup bersarang .

    Pertama, buatlah rumus VLOOKUP untuk mencari nama produk di tabel Lookup 1 (bernama Produk ) berdasarkan id item (A3):

    =VLOOKUP(A3, Produk, 2, FALSE)

    Berikutnya, masukkan rumus di atas ke dalam lookup_value argumen fungsi VLOOKUP lain untuk menarik harga dari tabel Lookup 2 (bernama Harga ) berdasarkan nama produk yang dikembalikan oleh VLOOKUP bersarang:

    =VLOOKUP(VLOOKUP(A3, Produk, 2, SALAH), Harga, 2, SALAH)

    Tangkapan layar di bawah ini menunjukkan rumus Vlookup bersarang kami beraksi:

    Cara Vlookup beberapa lembar secara dinamis

    Terkadang, Anda mungkin memiliki data dalam format yang sama yang dibagi menjadi beberapa lembar kerja. Dan tujuan Anda adalah menarik data dari lembar tertentu tergantung pada nilai kunci dalam sel tertentu.

    Katakanlah, Anda memiliki beberapa laporan penjualan regional dalam format yang sama, dan Anda ingin mendapatkan angka penjualan untuk produk tertentu di wilayah tertentu:

    Seperti pada contoh sebelumnya, kita mulai dengan mendefinisikan beberapa nama:

    • Rentang A2:B5 dalam lembar CA diberi nama CA_Penjualan .
    • Rentang A2:B5 dalam lembar FL diberi nama FL_Penjualan .
    • Rentang A2:B5 dalam lembar KS diberi nama KS_Penjualan .

    Seperti yang bisa Anda lihat, semua rentang bernama memiliki bagian yang sama ( Penjualan ) dan bagian-bagian unik ( CA , FL , KS Pastikan untuk menamai rentang Anda dengan cara yang sama karena ini penting untuk rumus yang akan kita buat.

    Formula 1. INDIRECT VLOOKUP untuk menarik data secara dinamis dari sheet yang berbeda

    Jika tugasmu adalah mengambil data dari beberapa sheet, rumus VLOOKUP INDIRECT adalah solusi terbaik - ringkas dan mudah dipahami.

    Untuk contoh ini, kita mengatur tabel ringkasan dengan cara ini:

    • Masukkan produk yang diminati dalam A2 dan A3. Itu adalah nilai pencarian kita.
    • Masukkan bagian unik dari rentang bernama di B1, C1 dan D1.

    Dan sekarang, kita menggabungkan sel yang berisi bagian unik (B1) dengan bagian umum ("_Sales"), dan memasukkan string yang dihasilkan ke INDIRECT:

    INDIRECT(B$1&"_Penjualan")

    Fungsi INDIRECT mentransformasi string menjadi nama yang bisa dipahami Excel, dan Anda memasukkannya ke dalam table_array argumen dari VLOOKUP:

    =VLOOKUP($A2, INDIRECT(B$1&"_Penjualan"), 2, FALSE)

    Rumus di atas masuk ke B2, dan kemudian Anda menyalinnya ke bawah dan ke kanan.

    Perhatikan bahwa, dalam nilai pencarian ($A2), kita telah mengunci koordinat kolom dengan referensi cell absolut agar kolomnya tetap tetap ketika rumusnya disalin ke kanan. Dalam referensi B$1, kita mengunci barisnya karena kita ingin koordinat kolomnya berubah dan menyediakan bagian nama yang sesuai untuk INDIRECT tergantung pada kolom tempat rumus tersebut disalin:

    Jika tabel utama Anda disusun secara berbeda, nilai pencarian dalam baris dan bagian unik dari nama rentang dalam kolom, maka Anda harus mengunci koordinat baris dalam nilai pencarian (B $ 1) dan koordinat kolom di bagian nama ($ A2):

    =VLOOKUP(B$1, INDIRECT($A2&"_Penjualan"), 2, FALSE)

    Formula 2. VLOOKUP dan IF bersarang untuk mencari beberapa lembar

    Dalam situasi ketika Anda hanya memiliki dua atau tiga lembar pencarian, Anda dapat menggunakan rumus VLOOKUP yang cukup sederhana dengan fungsi IF bersarang untuk memilih lembar yang benar berdasarkan nilai kunci dalam sel tertentu:

    =VLOOKUP($A2, IF(B$1="CA", CA_Penjualan, IF(B$1="FL", FL_Penjualan, IF(B$1="KS", KS_Penjualan,""))), 2, FALSE)

    Di mana $A2 adalah nilai pencarian (nama item) dan B$1 adalah nilai kunci (state):

    Dalam hal ini, Anda tidak perlu mendefinisikan nama dan bisa menggunakan referensi eksternal untuk merujuk ke sheet atau buku kerja lain.

    Untuk contoh rumus lainnya, silakan lihat Cara VLOOKUP di beberapa lembar di Excel.

    Itulah cara menggunakan VLOOKUP di Excel. Saya berterima kasih telah membaca dan berharap dapat melihat Anda di blog kami minggu depan!

    Buku kerja latihan untuk diunduh

    Contoh rumus VLOOKUP lanjutan (file .xlsx)

    Michael Brown adalah penggemar teknologi berdedikasi dengan hasrat untuk menyederhanakan proses kompleks menggunakan perangkat lunak. Dengan pengalaman lebih dari satu dekade di industri teknologi, dia telah mengasah keahliannya di Microsoft Excel dan Outlook, serta Google Spreadsheet dan Dokumen. Blog Michael didedikasikan untuk berbagi pengetahuan dan keahliannya dengan orang lain, memberikan tip dan tutorial yang mudah diikuti untuk meningkatkan produktivitas dan efisiensi. Apakah Anda seorang profesional berpengalaman atau pemula, blog Michael menawarkan wawasan berharga dan saran praktis untuk mendapatkan hasil maksimal dari perangkat lunak penting ini.